定义
元组(tuple):
不可变序列,一旦建立不能修改元组中的元素。
列表[list]:
可变序列,可以添加和删除其中的元素。
集合{set}:
集合是一个可变无序集合,没有重复元素。支持数学中的集合运算,如并集、交集、差集等。
字典{dict}:
也是可变容器,使用键-值对(key:value)存储,key是唯一的,value不需要唯一。 (相当于其它语言中的Map)
空元组、空列表、空字典、空集合
>>> a=()
>>> b=[]
>>> c={}
>>> type(a)
<class 'tuple'>
>>> type(b)
<class 'list'>
>>> type(c)
<class 'dict'>
>>> len(a)
0
>>> len(b)
0
>>> len(c)
0
>>>
{}是空字典,哪空集合如何表达? 尝试:
>>> d={None}
>>> type(d)
<class 'set'>
>>> len(d)
1
>>>
明显d是非空集,通过查资料知道空集合只能用set()函数转换或者直接设置:
>>> d1=set(())
>>> d2=set([])
>>> d3=set({})
>>> d4=set()
>>> type(d1)
<class 'set'>
>>> type(d2)
<class 'set'>
>>> type(d3)
<class 'set'>
>>> type(d4)
<class 'set'>
>>> for i in range(1,5):eval(f'print(\'len(d{i}) =\',len(d{i}))')
len(d1) = 0
len(d2) = 0
len(d3) = 0
len(d4) = 0
>>>
单一元素的元组、列表、字典、集合
>>> a=(None)
>>> b=[None]
>>> c={None}
>>> d={None:None}
>>> type(a)
<class 'NoneType'>
>>> type(b)
<class 'list'>
>>> type(c)
<class 'set'>
>>> type(d)
<class 'dict'>
>>>
只有元组不对,因为这样a=(None)表达,与数值运算的括号混起来了。 就像 (1), (2), ... 就是整数1,2,... 所以单个元素的元组要用一个逗号附在元素后来表示:
>>> a1=(None,)
>>> a2=(1,)
>>> a3=('2',)
>>> a4=(,)
SyntaxError: invalid syntax
>>> type(a1)
<class 'tuple'>
>>> type(a2)
<class 'tuple'>
>>> type(a3)
<class 'tuple'>
>>> len(a1)
1
>>> len(a2)
1
>>> len(a3)
1
>>>