python基础05——字典:dict及集合:set,看这篇文章就够了

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 应用 其他数据类型进行去重

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值