以下是什么区别:
x = [1,1,1], [1,1,1], [1,1,1], [1,1,1]
和
x = [[1,1,1], [1,1,1], [1,1,1], [1,1,1]]
第二个选项周围的方括号可以做什么吗?
答案 0 :(得分:7)
x = [1,1,1], [1,1,1], [1,1,1], [1,1,1]
将创建一个包含列表的元组
x = [[1,1,1], [1,1,1], [1,1,1], [1,1,1]]
将创建列表
列表即。)
x = [1,1,1], [1,1,1], [1,1,1], [1,1,1]
x
([1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1])
type(x)
<type 'tuple'>
"a","b"
('a', 'b')
答案 1 :(得分:2)
第一个创建列表元组,而第二个创建列表列表。
元组是不可变的,而列表是可变的。
第一个例子 -
>>> x = [1,1,1], [1,1,1], [1,1,1], [1,1,1]
>>> x
([1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1])
>>> x[0] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
第二个例子 -
>>> x = [[1,1,1], [1,1,1], [1,1,1], [1,1,1]]
>>> x
[[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
>>> x[0] = 1
>>> x
[1, [1, 1, 1], [1, 1, 1], [1, 1, 1]]
答案 2 :(得分:2)
没有括号,它是一个元组:
>>> x = [1,1,1], [1,1,1], [1,1,1], [1,1,1]
>>> x
([1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1])
>>> type(x)
<type 'tuple'>
您无法修改元组中的项目。
使用[]
是一个列表:
>>> x = [[1,1,1], [1,1,1], [1,1,1], [1,1,1]]
>>> x
[[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
>>> type(x)
<type 'list'>
答案 3 :(得分:2)
第一个与执行此操作相同:
x = ([1,1,1], [1,1,1], [1,1,1], [1,1,1])
这是一个列表元组。