字典是一个可变,无序的容器 ,字典内的元素都是键值对,每一个值(value)都对应一个键(key),标志性符号是花括号{}和冒号
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: {}
dict2 = dict(韩梅梅= 80, 李雷= 86, 张三= 77)
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77}
#可以使用元组或者列表,将一对包起来
dict2 = dict([('韩梅梅',80), ('李雷',86),('张三',79)])
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}
#创建空字典
dict2 = dict()
dict2
out: {}
name = ['韩梅梅', '李雷', '张三']
score = [80, 86, 79]
dict3 = dict(zip(name,score))
dict3
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}
#创建值相同的字典
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'], 99)
dict4
#out: {'韩梅梅': 99, '李雷': 99, '张三': 99}
#创建值为空的字典
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'])
dict4
#out: {'韩梅梅': None, '李雷': None, '张三': None}
注意:
#元组是不可变类型元组可以做key,但是列表不可以
dict1={('王明','韩梅梅'): 80,'李雷': 86 ,'张三': 79 }
dict1
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2['韩梅梅']
#out: 80
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: 不存在
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.keys()
#out: dict_keys(['韩梅梅', '李雷', '张三'])
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.values()
#out: dict_values([80, 86, 79])
#dict.items()辅助实现字典和其他数据类型之间的转换
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.items()
#out: dict_items([('韩梅梅', 80), ('李雷', 86), ('张三', 79)])
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
'韩梅梅' in dict1 #查找字典里有没有某个值
#out: True
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键不存在,增加一个元素
dict1['王梅'] = 88
dict1
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
dict1={'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}
dict1.setdefault('李红',100)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90, '李红': 100}
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键存在,修改对应的值
dict1['韩梅梅'] = 88
dict1
#out: {'韩梅梅': 88, '李雷': 86, '张三': 77, '王五': 90}
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77}
dict2={'李雷': 96, '张三': 77, '王五': 90}
dict1.update(dict2)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}
#del 删除字典某键的键值对
dict1={'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
del dict1['韩梅梅']
dict1
#out: {'李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
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)
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}
集合常用来对其他数据类型进行去重
集合是一种无序的可变的容器,对应数学中的集合,标志性符号是花括号{}
集合与字典类似,集合中的元素被看做的字典中的键(里面的元素需要是不可变的数据类型),集合里面没有重复值
set1 = {1,2,'a','b'}
set1
#out: {1, 2, 'a', 'b'}
type(set1)
#out: set
set2 = set([1,2,'a','b']) #或者set2 = set((1,2,'a','b'))
set2
#out: {1, 2, 'a', 'b'}
上一篇:C#递归处理树菜单
下一篇:【HTML】标签简单融合运用