美文网首页
[python基础]-09 使用字典dict和集合set

[python基础]-09 使用字典dict和集合set

作者: 一点想法 | 来源:发表于2019-07-17 11:47 被阅读0次

1.字典 dict

字典dict也是属于一种Python的数据类型,在其他语言中称为map,具有极快的查找速度,因为数据的存储是通过key:value键值对的形式进行存储

2.列表list的缺点

当我们想要存储具有映射关系的数据时,我们需要存储到两个列表中

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
1.给定一个名字要查找对应的成绩使用list存储,
2.需要先在names列表中找到对应的名字后,
3.再去scores列表中查找到对应成绩,list越长,耗时越长,因为列表是按照索引来查找数据

3.使用dict存储映射关系的数据

  • 3.1 字典定义

1.使用{}符号来定义字典
2.键和值之间用冒号:分隔,而键值对之间用逗号,分隔

dict = {'Michael':95,'Bob':75,'Tracy':85}
  • 3.2 访问字典中值

获取与键相关的值,可依次指定字典名和放在括号内的键

dict = {'Michael':95,'Bob':75,'Tracy':85}
>>> dict['Michael']  #通过字典名和key值来访问关联的值
95
  • 3.3 dict查找快速的原理

因为dict是通过key和value键值对进行存储,如果我们想要定位一组数据,即定位到对应的key值即可,相比列表需要从索引0开始搜索更加快速

  • 3.4 判断key值是否存在
  1. 使用in
>>> l1={'age1':33,'age2':45,'age3':67}
>>> 'age3' in l1  
True        #key存在l1字典
>>> 'age4' in l1
False      #age4不存在字典l1中
  1. 使用get方法
    1.如果key值存在,返回对应的value
    2.如果key值不存在,默认返回None,交互式中不会输出,可以使用print打印出来
    3.也可以自己指定打印的错误信息,key值不存在时输出,这里的wrong就是自己定义的错误输出
>>> l1.get('age1')
33
>>> l1.get('age4')
>>> l1.get('age5','wrong')
'wrong'
  • 3.5 删除字典元素

1.使用pop函数,传入对应key值,会将key-value一起删除

>>> l1={'age1':33,'age2':45,'age3':67}
>>> l1.pop('age1')
33
>>> l1
{'age2': 45, 'age3': 67}
  • 3.6 添加键-值对

1.字典是动态的结构,可随时在其中添加键-值对
2.要添加键-值对,可依次指定字典名、方括号括起来的key值及关联的value值

>>> scores = {'Alen':76,'Tom':90,'Bille':98}
>>> scores['Richal']=100
>>> scores
{'Alen': 76, 'Tom': 90, 'Bille': 98, 'Richal': 100}
  • 3.6 dict数据特点

1.字典内部的数据存储是无序的,即两次打印输出同一个字典,排序可能不同
2.key值不可重复,具有唯一性
3.每一个key只能对应一个value
4.重复对同一个key赋值,只会存储最后依次赋值的内容
5.key的数据类型必须是不可变的,所以字符串、整数是不可变,可以作为key,list是可变对象,不可作为key值

4.集合 set

4.1 set定义

1.set和dict类似,同样存储一组不重复的key,但不同的是,set不存储value
2.创建一个set,需要提供一个列表作为输入集合
3.集合也是无序的

>>> s = set([1,2,3])
>>> s
{1, 2, 3}
4.2 重复的元素,set会自动过滤
>>> t=set([1,2,2,3,4,3])
>>> t
{1, 2, 3, 4}
4.3 给集合添加、删除元素
  • 尾部添加元素 add
>>> t.add(5)
>>> t
{1, 2, 3, 4, 5}
  • 移除元素 remove
>>> t
{1, 2, 3, 4, 5}
>>> t.remove(2)
>>> t
{1, 3, 4, 5}
4.4 集合可做交集 并集运算
>>> s1=set([1,2,3])
>>> s2=set([2,3,4])
>>> s1&s2        #并集使用&  表示s1和s2中都包含的元素
{2, 3}
>>> s1|s2         #交集使用|  表示s1和s2中所有不重复的元素
{1, 2, 3, 4}

相关文章

网友评论

      本文标题:[python基础]-09 使用字典dict和集合set

      本文链接:https://www.haomeiwen.com/subject/kpztlctx.html