如何在Python 3中创建一个空列表?

3
这段代码的问题在哪里?因为我需要创建一个空列表,但我无法创建一个空列表。
这段代码有一个问题:它无法创建一个空列表。
def empty_list():
    empty_list=[]
    return empty_list
def text_to_list(the_text):
    empty_list=empty_list()
    empty_list[:0]=the_text
    return empty_list
# The print to show the result.
print(text_to_list("ABCD"))

结果:
Traceback (most recent call last):
  File "./prog.py", line 9, in <module>
  File "./prog.py", line 5, in text_to_list
UnboundLocalError: local variable 'empty_list' referenced before assignment

3
你的函数名和返回变量名相同。而且,为什么你需要一个函数来完成这个任务,而不是直接使用empty_list = list()呢? - not_speshal
@not_speshal 请不要在评论中发布答案。请添加一个答案,以便问题可以标记为已回答。 - orlp
1
或者只需使用 empty_list = [],在这里创建函数是无意义的。 - juanpa.arrivillaga
4个回答

2
问题是由变量和函数之间共享名称引起的。Python在执行函数之前检查在函数中创建的变量。在调用时,解释器已经将empty_list视为一个变量。
解决方案:重命名函数或变量。

2
只需简单地
empty_list = []

将创建一个空列表,您可以添加和调用


1
你实际上不需要函数来做这个,但如果你想要与你的代码一起工作,请确保你不要为函数和变量使用相同的名称。在你的代码中,empty_list用于几乎所有东西,这很令人困惑。
def empty_list():
    a_list=[]
    return a_list

def text_to_list(the_text):
    another_list = empty_list()
    another_list[:0] = the_text
    return another_list

# The print to show the result.
print(text_to_list("ABCD"))

作为旁注,你可以在一行代码中完成上述所有操作,因为Python可以轻松地将字符串转换为列表,如下所示:
>>> list("ABCD")
['A', 'B', 'C', 'D']

0
一种可能的解决方案是调用list()构造函数,使用它的代码大致如下:
empty_list = list()

这将创建一个空列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接