定义
元组(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 >>>
{}是空字典,哪空集合如何表达? 尝试:
1. >>> d={None} 2. >>> type(d) 3. <class 'set'> 4. >>> len(d) 5. 1 6. >>>
明显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 >>>