-
tuple 里边的 list 可修改:
>> t = (1, 2, [3, 4]) >>t[2].append(5) >> t (1, 2, [3, 4, 5])
-
tuple
的切片还是tuple
,list
的切片还是list
(这可能是一句废话)>>>type(t[0:2]) <class 'tuple'> >>>type(l[0:3]) <class 'list'>
1. tuple
可读不可写,tuple
的元素不可作左值,list
反之
>>>t = (1, 2, 3)
>>>t[:]
(1, 2, 3)
>>>t[0] = 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>l = [1, 2, 3]
>>>l[:]
[1, 2, 3]
>
>>>l[0] = 4
>
2. 两者的成员函数:tuple
几乎没什么成员函数,list
却有着丰富的成员函数:
>>>t = (1, 2, 3, 3, 4)
>>>dir(t)
# 有意义的成员函数只有`count`、`index`
# count,记录元组中某一元素出现的次数,index返回值所在的下标
>>>t.count(3)
2
>>>t.count(2)
1
>>>t.index(4)
4
>>>l=[1, 2, 3, 4]
dir(l)
3. 彼此间类型转换
>>>l = [1, 2, 3, 3, 4]
>>>tuple(l)
(1, 2, 3, 3, 4)
>>>t = (1, 2, 3, 3, 4)
>>>list(t)
[1, 2, 3, 3, 4]
>>>(l)
[1, 2, 3, 3, 4]
>>>[t] # 由元组组成的list
[(1, 2, 3, 3, 4)]