Python
集合类型
元组
-
1、元组介绍
-
Python的元组与列表类似,不同之处在于元组的元素不能修改(存引用地址,里面的list可变)。元组使用小括号,列表使用方括号
-
定义一个空的tuple,可以写成()
- t = ()
-
只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
- t = (1,)
-
-
2、常用操作
- <1>访问元组
- <2>修改元组
- <3>元组的内置函数count, index
字典
-
1、字典的介绍
- Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
-
2、字典的常见操作
-
<1>修改元素
- 字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改
-
<2>添加元素
- 如果在使用 变量名[‘键’] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素
-
<3>删除元素
-
del
- del删除指定的元素(不指定删除所有)
-
clear()
- clear清空整个字典
-
-
-
3、字典的常见函数:
-
<1>len()
- 测量字典中,键值对的个数
-
<2>keys == map.keySet()
- 返回一个包含字典所有KEY的列表
-
<3>values
- 返回一个包含字典所有value的列表
-
<4>items
- 返回一个包含所有(键,值)元祖的列表
-
-
4、字典遍历
-
<1> 遍历字典的key(键)
-
<2> 遍历字典的value(值)
-
<3> 遍历字典的项(元素)
-
<4> 遍历字典的key-value(键值对)
-
5、总结:
-
1、请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的
-
2、和list比较,dict有以下几个特点:
- 1)查找和插入的速度极快,不会随着key的增加而变慢;
- 2)需要占用大量的内存,内存浪费多
- 3)而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少
- 4)dict是用空间来换取时间的一种方法
-
3、dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
-
-
可变类型与不可变类型
-
1、可变类型,值可以改变:
- 列表 list
- 字典 dict
- set (没有value的字典)
-
2、不可变类型,值不可以改变:
- 数值类型 int, long, bool, float
- 字符串 str
- 元组 tuple