参考 :
一、 List 和 tuple
集合在每种语言都有,Python也不例外
1.1 List
Python内置的列表数据类型,一种有序集合。
>>> name = ['Mark','Tom','Lucy']
>>> len(name) # 长度
3
>>> name[0] # 获取第一个元素
'Mark'
>>> name.append('Jhon') # 在末尾追加一个元素
>>> name
['Mark', 'Tom', 'Lucy', 'Jhon']
>>> name.insert(0,'Jack') # 插入元素
>>> name
['Jack', 'Mark', 'Tom', 'Lucy', 'Jhon']
>>> name.pop(4) # 移除元素
'Jhon'
>>> name
['Jack', 'Mark', 'Tom', 'Lucy']
>>> name[2] = 'Marshal' # 赋值(替换)
>>> name
['Jack', 'Mark', 'Marshal', 'Lucy']
# 多层List
>>> s = ['Java','Python',['Php','C#']]
>>> s
['Java', 'Python', ['Php', 'C#']]
>>> s[2]
['Php', 'C#']
>>> s[2][1]
'C#'
1.2 tuple
和List一样,tuple也是一个有序列表。唯一和list有区别的就是 tuple一旦被初始化就不能修改(即tuple没有 append insert函数)
>>> name = ('Mark','Tom','Jack')
>>> name
('Mark', 'Tom', 'Jack')
>>> city = ('Paris',)
>>> city
('Paris',) # 表示只有一个元素 Paris
>>> name
('Mark', 'Tom', 'Jack')
# 当然如果tuple中包含list那么这个list是可变的,因此tuple中保存的只是list的指针
>>> a = ('A',['B','C'])
>>> a[1][1] = 'D'
>>> a
('A', ['B', 'D']) # ch成功替换
二、 dict 和 set
2.1 dict
Python内置了字典:dict的支持,dict全称dictionary,类似于Java中的Map,使用键值对(key-value)存储,具有极快的查找速度,key 唯一
>>> data = {'Mark': 95, 'Tom': 75, 'Lucy': 80}
>>> data
# 1、查
>>> data['Tom']
75
>>> data.get('Tom')
75
# 2、改
# 多次对一个key放入value,后面的值会把前面的值覆盖
>>> data['Tom'] = 100
>>> data
{'Mark': 95, 'Tom': 100, 'Lucy': 80}
# 3、增
>>> data['Jack'] = 99
>>> data
{'Mark': 100, 'Tom': 100, 'Lucy': 80, 'Jack': 99}
# 4、 删
>>> data.pop('Mark')
100
>>> data
{'Tom':100, 'Lucy': 80, 'Jack': 99}
# 判断 key是否存在 *in*
>>> 'Thomas' in data
False
# dict提供get()方法,如果key不存在,则返回None或者自己指定的值
>>> data.get('haha')
>>> data.get('haha', -1)
-1
# Python的交互环境不会显示空值 None, 例如:
>>> a = None
>>> a # 回车
>>> (None 看不见我)
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
1、 查找和插入的速度极快,不会随着key的增加而变慢;
2、 需要占用大量的内存,内存浪费多。
而list相反:
1、查找和插入的时间随着元素的增加而增加;
2、占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
2.2 set
无序不重复
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
# 要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
# 增
>>> s.add(4)
>>> s
{1, 2, 3, 4}
# 删
>>> s.remove(3)
>>> s
{1, 2, 4}
网友评论