python基础05——字典:dict及集合:set,看这篇文章就够了
创始人
2024-01-20 09:03:32
0

目录

  • 1字典: dict 无序可变序列
    • 1.1 创建
      • 1.1.1 用{ }创建字典
      • 1.1.2 用dict创建字典
      • 1.1.3 用zip创建字典
      • 1.1.4 用fromkeys创建字典
    • 1.2 查询
      • 1.2.1 通过键访问字典的值
        • 1.2.1.1 直接取键 dict[ ]
        • 1.2.1.2 get()
      • 1.2.2 查看字典的键和值
        • 1.2.2.1 返回所有的键 dict.keys()
        • 1.2.2.2 返回所有的值 dict.values()
      • 1.2.3 返回所有键值对 dict.items()
      • 1.2.4 判断键是否存在 in
    • 1.3 增加
      • 1.3.1 dict1[' ']
      • 1.3.2 dict.setdefault()
    • 1.4 修改
      • 1.4.1 通过键修改字典的值
      • 1.4.2 通过一个字典修改另一个字典中的值
    • 1.5 删除
      • 1.5.1 del dict['']
      • 1.5.2 pop和popitem
      • 1.5.3 clear 清空字典
      • 1.5.4 del 删除字典
    • 1.6 应用 统计字符串出现次数
  • 2 集合: set 无序可变序列
    • 2.1 创建
      • 2.1.1 用{} 创建
      • 2.1.1 用set( )创建
    • 2.2 查询 in
    • 2.3 修改 set1.update(set2)
    • 2.4 增加 add
    • 2.5 删除
      • 2.5.1 pop随机删除
      • 2.5.2 按照元素值删除
      • 2.5.3 清空 clear
    • 2.6 专属操作 求并集,交集,差集,子集判断,等于和不等于
    • 2.7 应用 其他数据类型进行去重

1字典: dict 无序可变序列

字典是一个可变,无序的容器 ,字典内的元素都是键值对,每一个值(value)都对应一个键(key),标志性符号是花括号{}和冒号

1.1 创建

1.1.1 用{ }创建字典

dict1={'韩梅梅': 80,'李雷': 86 ,'张三': 77 }
dict1
#out:{'韩梅梅': 80, '李雷': 86, '张三': 77}
#传入不同类型的值
dict1={'韩梅梅': 80,'李雷': 86 ,'张三': [77,45,56] }
dict1
#out:{'韩梅梅': 80, '李雷': 86, '张三': [77, 45, 56]}
#创建空字典
dict1 = {}
dict1
out: {}

1.1.2 用dict创建字典

dict2 = dict(韩梅梅= 80, 李雷= 86, 张三= 77)
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77}
#可以使用元组或者列表,将一对包起来
dict2 = dict([('韩梅梅',80), ('李雷',86),('张三',79)])
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}
#创建空字典
dict2 = dict()
dict2 
out: {}

1.1.3 用zip创建字典

name = ['韩梅梅', '李雷', '张三']
score = [80, 86, 79]
dict3 = dict(zip(name,score))
dict3 
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}

1.1.4 用fromkeys创建字典

#创建值相同的字典
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'], 99)
dict4
#out: {'韩梅梅': 99, '李雷': 99, '张三': 99}
#创建值为空的字典
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'])
dict4
#out: {'韩梅梅': None, '李雷': None, '张三': None}

注意:

  • 必须是不可变的数据类型才可以做字典的键,如果是包含列表的元组也不能做键。
#元组是不可变类型元组可以做key,但是列表不可以
dict1={('王明','韩梅梅'): 80,'李雷': 86 ,'张三': 79 }
dict1

在这里插入图片描述在这里插入图片描述

  • 字典的键不可以出现重复值(键必须是唯一的),值可以重复,可以使复合类型。
    如果键的名字有重复,不会报错,保留后面的一个键值对
    在这里插入图片描述

1.2 查询

1.2.1 通过键访问字典的值

1.2.1.1 直接取键 dict[ ]

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2['韩梅梅']
#out: 80

1.2.1.2 get()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.get('韩梅梅')
#out: 80
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
#若字典中不存在该键,不会报错,输出为空;
#get中可以传入两个参数,若字典中存在该键,则输出该键所对应的值,否则输出设定的输出内容。
dict2.get('韩梅梅','不存在')
#out: 80

在这里插入图片描述

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.get('王梅','不存在')
#out: 不存在

在这里插入图片描述

1.2.2 查看字典的键和值

1.2.2.1 返回所有的键 dict.keys()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.keys()
#out: dict_keys(['韩梅梅', '李雷', '张三'])

在这里插入图片描述

1.2.2.2 返回所有的值 dict.values()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.values()
#out: dict_values([80, 86, 79])

在这里插入图片描述

1.2.3 返回所有键值对 dict.items()

#dict.items()辅助实现字典和其他数据类型之间的转换
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.items()
#out: dict_items([('韩梅梅', 80), ('李雷', 86), ('张三', 79)])

在这里插入图片描述

1.2.4 判断键是否存在 in

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
'韩梅梅' in dict1  #查找字典里有没有某个值
#out: True 

1.3 增加

1.3.1 dict1[’ ']

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键不存在,增加一个元素
dict1['王梅'] = 88
dict1
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

在这里插入图片描述

1.3.2 dict.setdefault()

dict1={'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}
dict1.setdefault('李红',100)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90, '李红': 100}

在这里插入图片描述

1.4 修改

1.4.1 通过键修改字典的值

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键存在,修改对应的值
dict1['韩梅梅'] = 88
dict1
#out: {'韩梅梅': 88, '李雷': 86, '张三': 77, '王五': 90}

1.4.2 通过一个字典修改另一个字典中的值

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77}
dict2={'李雷': 96, '张三': 77, '王五': 90}
dict1.update(dict2)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}

在这里插入图片描述

1.5 删除

1.5.1 del dict[‘’]

#del  删除字典某键的键值对 
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
del dict1['韩梅梅']
dict1
#out: {'李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

1.5.2 pop和popitem

pop和popitem 会抛出的元素,也就是取出所对应的值,然后在原字典删除该键值对

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
dict1.pop('韩梅梅')
#out: 80
dict1
#out: {'李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

在这里插入图片描述popitem删除最后一个键值对

dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
dict1.popitem()
#out: ('王梅', 88)

在这里插入图片描述

1.5.3 clear 清空字典

在这里插入图片描述

1.5.4 del 删除字典

在这里插入图片描述

1.6 应用 统计字符串出现次数

s = 'absdcdaa'
d = {}
for i in s:d[i] = d.get(i,0)+1
d
#out: {'a': 3, 'b': 1, 's': 1, 'd': 2, 'c': 1}

2 集合: set 无序可变序列

集合常用来对其他数据类型进行去重

2.1 创建

集合是一种无序的可变的容器,对应数学中的集合,标志性符号是花括号{}
集合与字典类似,集合中的元素被看做的字典中的键(里面的元素需要是不可变的数据类型),集合里面没有重复值

2.1.1 用{} 创建

set1 = {1,2,'a','b'}
set1
#out: {1, 2, 'a', 'b'}
type(set1)
#out: set

2.1.1 用set( )创建

set2 = set([1,2,'a','b'])  #或者set2 = set((1,2,'a','b'))
set2
#out: {1, 2, 'a', 'b'}

2.2 查询 in

在这里插入图片描述

2.3 修改 set1.update(set2)

在这里插入图片描述

2.4 增加 add

在这里插入图片描述
在这里插入图片描述

2.5 删除

2.5.1 pop随机删除

在这里插入图片描述

2.5.2 按照元素值删除

在这里插入图片描述

2.5.3 清空 clear

在这里插入图片描述

2.6 专属操作 求并集,交集,差集,子集判断,等于和不等于

在这里插入图片描述在这里插入图片描述

2.7 应用 其他数据类型进行去重

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...