您的位置:首页 > 编程语言 > Python开发

Python基础-dict和set

2018-03-07 16:20 579 查看

1.dict

Python内置了字典:dict的支持,使用键值存储,查找速度快比如说,我们要从字典里的一万个字里面查找一个字,list就相当于从字典的第一页开始,一页一页往后翻,list越大,查找越慢而dict相当于查找这个字的部首,根据部首查找字,这种查找速度就非常快d = {'周杰伦':45,'周润发': 65,'周星驰':60}print(d['周杰伦'])print(d['周润发'])print(d['周星驰'])
结果:45
65
60
一个key只能对应一个value,所以,多次对一个key放入value,后面的值会覆盖前面的值#向字典里放入一个新的元素d['周华健'] = 62print(d)d['周华健'] = 68print(d)
结果:{'周杰伦': 45, '周润发': 65, '周星驰': 60, '周华健': 62}
{'周杰伦': 45, '周润发': 65, '周星驰': 60, '周华健': 68}
#如果key不存在,就会报错
print(d['周建'])
结果:Traceback (most recent call last):
     File "/Users/zhoujian/Python/Demo/dict.py", line 19, in <module>
     print(d['周建'])
KeyError: '周建'
#通过2种方法避免key不存在的错误

if '周建' in d:
print(d['周建'])
else:
print('周建不存在字典d中')

if d.get('周建') != None:
print(d['周建'])
else:
print('周建不存在字典d中')
结果:周建不存在字典d中
周建不存在字典d中
#要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
print(d)
d.pop('周星驰')
print(d)
结果:{'周杰伦': 45, '周润发': 65, '周星驰': 60, '周华健': 68}
{'周杰伦': 45, '周润发': 65, '周华健': 68}
dict:

查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
list:

查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
d = {'周杰伦':45,'周润发': 65,'周星驰':60}
print(d['周杰伦'])
print(d['周润发'])
print(d['周星驰'])

print('-------------------------------')

#向字典里放入一个新的元素
d['周华健'] = 62
print(d)

d['周华健'] = 68
print(d)

print('-------------------------------')

#如果key不存在,就会报错
#print(d['周建'])

print('-------------------------------')

#通过2种方法避免key不存在的错误

if '周建' in d:
print(d['周建'])
else:
print('周建不存在字典d中')

if d.get('周建') != None:
print(d['周建'])
else:
print('周建不存在字典d中')

print('-------------------------------')

#要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
print(d)
d.pop('周星驰')
print(d)

2.set

set和dict类似,也是一组key的集合,但不存储value,key不能重复要创建一个set,需要提供一个list作为输入集合
s = set([1,2,3])
print(s)
结果:{1, 2, 3}
#重复元素在set中会被自动过滤s = set([1,1,2,2,3,3])print(s)
结果:{1, 2, 3}
#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果s = set([1,2,3])s.add(4)print(s)
结果:{1, 2, 3, 4}
#通过remove(key)方法可以删除元素:s.remove(4)print(s)
结果:{1, 2, 3}
#交集和并集运算s1 = set([1,2,3])s2 = set([3,4,5])#交集运算print(s1 & s2)#并集运算print(s1 | s2)
结果:{3}{1, 2, 3, 4, 5}
print('-------------------------------1')s = set([1,2,3])
print(s)print('-------------------------------2')#重复元素在set中会被自动过滤s = set([1,1,2,2,3,3])print(s)print('-------------------------------3')#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果s = set([1,2,3])s.add(4)print(s)print('-------------------------------4')#通过remove(key)方法可以删除元素:s.remove(4)print(s)print('-------------------------------5')#交集和并集运算s1 = set([1,2,3])s2 = set([3,4,5])#交集运算print(s1 & s2)#并集运算print(s1 | s2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: