简单来说:元组就是不能修改值的列表,即不可变的列表。如果需要存储的一组值在程序的整个生命周期内不变,可使用元组。
元组与列表在代码上的区别:元组的定义用(),类型是tuple//列表的定义用[],类型是list
>>> name_list=['peter', 'william', 'jack', 'tom', 'alice', 'jim']
>>> type(name_list)
>>> name_list=('peter', 'william', 'jack', 'tom', 'alice', 'jim')
>>> type(name_list)
注:如果只是创建一个单个元素的tuple,必须要在其后加一个“,”,这样子系统才能确认是元组,而不是int整型
示例:
>>> temp=(1)
>>> temp
1
>>> type(temp)
>>> temp=()
>>> temp=(1,)
>>> type(temp)
元组与列表在修改元素上的差别示例:
>>> name_list=['peter', 'william', 'jack', 'tom', 'alice', 'jim']
>>> type(name_list)
>>> name_list[0]='peterking'
>>> name_list
['peterking', 'william', 'jack', 'tom', 'alice', 'jim']#列表可以修改元素
>>> name_list=('peter', 'william', 'jack', 'tom', 'alice', 'jim')
>>> type(name_list)
>>> name_list[0]='peterking'
Traceback (most recent call last):
File "", line 1, in
name_list[0]='peterking'
TypeError: 'tuple' object does not support item assignment #报错,元组无法修改元素
与列表相同,可以使用for循环来遍历元组中的所有值
>>> name_list=('peter', 'william', 'jack', 'tom', 'alice', 'jim')
>>> for name in name_list:
print(name)
peter
william
jack
tom
alice
jim
如果需要对元组内元素的值进行修改,则需要重新定义整个元组
>>> number_list=(1,2,3,4,5)
>>> number_list[4]='6'
Traceback (most recent call last):
File "", line 1, in
number_list[4]='6'
TypeError: 'tuple' object does not support item assignment
>>> number_list=(1,2,3,4,6)
>>> number_list
(1, 2, 3, 4, 6)
如果我们需要增加元素进元组,可以采用这样的方式。需要注意的是加入的元素的表达必须要是元组类型,否则会报错。
>>> temp=('peter', 'william', 'jack', 'tom', 'alice', 'jim')
>>> temp=temp[:2]+'john'+temp[2:]
Traceback (most recent call last):
File "", line 1, in
temp=temp[:2]+'john'+temp[2:]
TypeError: can only concatenate tuple (not "str") to tuple
>>> temp=temp[:2]+('john')+temp[2:]
Traceback (most recent call last):
File "", line 1, in
temp=temp[:2]+('john')+temp[2:]
TypeError: can only concatenate tuple (not "str") to tuple
>>> temp=temp[:2]+('john',)+temp[2:]
>>> temp
('peter', 'william', 'john', 'jack', 'tom', 'alice', 'jim')
>>>
1,变量名没有固定分配内存空间
2,如果没有标签,就会被回收