list(temp)或[temp]有什么区别

时间:2019-07-20 08:40:19

标签: python python-3.x

我尝试使用列表时遇到一些错误,

new_list=new_list+[temp]

但是当我使用list(temp)时它不起作用

new_list=new_list+list(temp)

2 个答案:

答案 0 :(得分:1)

出现错误是因为您试图创建一个带有整数的列表:

temp = 1
print(list(temp))

输出:

TypeError: 'int' object is not iterable 

list()构造函数返回元素的可变序列列表。可迭代参数是可选的。您可以提供任何序列或集合(例如字符串,列表,元组,集合,字典等)。如果未提供任何参数,则返回一个空列表。

下面的示例工作正常,因为您将一个整数放在列表中:

temp = 1
print([temp])

输出:

[1]

该列表是使用一对方括号构成的。

答案 1 :(得分:0)

根据python官方documentation,列表对象可以通过几种方式构造:

  
      
  • 使用一对方括号表示空白列表:[]
  •   
  • 使用方括号,并用逗号分隔项目:[a],[a,b,c]
  •   
  • 使用列表推导:[x代表x代表x处于可迭代状态]
  •   
  • 使用类型构造函数:list()或list(iterable)
  •   

因此,[]是语法文字,list()是内置的构造函数。对于后者,接受的参数是可迭代的(如果未提供参数,则构造函数将创建一个新的空列表[]),这就是list(1)引发TypeError的原因。