2019-05-14 列表 元组 字典 集合
2019-05-14 本文已影响0人
沙滩印
列表list是一种有序的集合,可以随时添加和删除其中的元素。 --[]
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。 --()
函数可以同时返回多个值,但其实就是一个tuple。
如果要定义一个空的tuple,可以写成():
>>> t = ()
>>> t
()
要定义一个只有1个元素的tuple,如果你这么定义:
>>> t = (1)
>>> t1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,)
>>> t(1,)
Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储. --{:}
如果key不存在,dict就会报错:
>>> d['Thomas']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Thomas'
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
>>> 'Thomas' in d
False
二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
注意:返回None的时候Python的交互环境不显示结果。
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。作为key的对象不能变,list是可变的,就不能作为key。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反: - 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key,且是无序的。 --set()