元组各元素用逗号分隔
>>> y=123,456,789
>>> y[1]
456
可用圆括号把个元素括起来,也可以不用
>>> y=(123,456,789)
>>> y
(123, 456, 789)
>>> y[1]
456
元组元素不能改变
>>> y=(123,456,789)
>>> y
(123, 456, 789)
>>> y[1]
456
元组可以在初始化阶段进行嵌套
数组用方括号括起来,各元素逗号分隔
>>> l=[123,456,789]
>>> l[1]
456
各元素可以改变
>>> l[1]=852
>>> l[1]
852
可以嵌套进元组
>>> l[1]=y
>>> print(l)
[123, (123, 456, 789), 789]
可以嵌套进列表
>>> l2=[753,951,852]
>>> l[1]=l2
>>> print(l)
[123, [753, 951, 852], 789]
甚至可以自己无限嵌套
>>> l[1]=l
>>> print(l)
[123, [...], 789]
可以对列表或者元组中的某个元素检索,或者检索多个
>>> l[1][1]
951
>>> l[1][0:2]
[753, 951]
但不能对其中某个元素单独检索
>>> l[1][1][1]
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
l[1][1][1]
TypeError: 'int' object is not subscriptable
>>> l[0][1]
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
l[0][1]
TypeError: 'int' object is not subscriptable
估计是因为元素是int型
验证:
>>> type(l[0])
<class 'int'>
尝试更换列表元素为str型
之后重复上述操作
>>> l[0]=str(123)
>>> type(l[0])
<class 'str'>
>>> l[0][0]
'1'
成功
在元组初始化阶段嵌套进一个列表,那么列表性质会被改变吗?
尝试一下:
>>> l
['123', [753, 951, 852], 789]
>>> y2=(123,456,l)
>>> y2
(123, 456, ['123', [753, 951, 852], 789])
>>> y2[2][2]=987
>>> y2
(123, 456, ['123', [753, 951, 852], 987])
答案是不会,元组里的列表正常运作…
如果需要某些数值不会改变,某些数值需要改变
元组和列表的互相嵌套可以解决问题