在使用代码时,我注意到[0,]*6
,不会返回[0,0,0,0,0,0,]
,而是返回[0,0,0,0,0,0]
。你能解释一下原因吗?
答案 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]
。这就是语法的方式。