通过乘法创建列表

时间:2015-09-03 09:09:07

标签: python list python-2.7

在使用代码时,我注意到[0,]*6,不会返回[0,0,0,0,0,0,],而是返回[0,0,0,0,0,0]。你能解释一下原因吗?

3 个答案:

答案 0 :(得分:6)

[0,0,0,0,0,0,][0,0,0,0,0,0]是相同的列表。 python语法分析器可以接受最后一个逗号,以便将变量和元组与内部变量区分开来:(1)int(1,)tuple

答案 1 :(得分:3)

() (,)与第一个节目value不同,其他节目为tuple,而在列表[][,]的情况下,相同。

In [4]: [0,]*6
Out[4]: [0, 0, 0, 0, 0, 0]

In [5]: [0]*6
Out[5]: [0, 0, 0, 0, 0, 0]

In [6]: (1,)*6
Out[6]: (1, 1, 1, 1, 1, 1)

In [7]: (1)*6
Out[7]: 6

In [8]: [0,] == [0]
Out[8]: True

In [9]: (0,) == (0)
Out[9]: False

答案 2 :(得分:1)

列表不以逗号结尾。这就是语法的方式。但是,Python会认为('hello world')是一个字符串。要创建元组,必须使用逗号('hello world',)结束。因此,在您的情况下,Python认为[0,]等同于[0]。这就是语法的方式。