什么是字典
字典包含了一个索引的集合,称为键和值的集合。一一对应,这种关系称为键值对或称为项。简单地说,字典就是用花括号包裹的键值对的集合。每个键值对用冒号“:”分割,每对之间用逗号“,”分割
键必须是唯一的,不能重复,还必须是不可变的数据类型,例如:字符串、数字、或元组。值可以是任何数据类型。
字典是一个无序的数据集合,通常输出顺序和定义顺序不一样
Python语言的字典就是一种映射
创建字典
(1)定义一个空字典——dict = {}
(2)定义一个字典——键必须是唯一的,不能重复,还必须是不可变的数据类型,例如:字符串、数字、或元组。值可以是任何数据类型
输入:dict = {‘cai’:18,12:[1,3,5],(4,‘westos’,18):‘westos’}
输出:print(dict,type(dict))
结果:{‘cai’: 18, 12: [1, 3, 5], (4, ‘westos’, 18): ‘westos’} <class ‘dict’>
(3)工厂函数生成字典
d = dict()
print(d,type(d))
输出:{} <class ‘dict’>
dict1 = dict(a=1,b=2)
print(dict1,type(dict1))
输出:{‘a’: 1, ‘b’: 2} <class ‘dict’>
(4)生成新的字典,所有key的value值一样
{}.fromkeys({‘1’,‘2’},‘000000’)
字典的特性
(1)成员操作符(针对key来说)
‘元素’ in dirt:元素在字典中
‘元素’ not in dirt :元素不在字典中
(2)for 循环
1.第一种方式
默认遍历字典中的key值
d = {'a':1,'b':2}
for i in d:
print(i)
结果为:a b
想要遍历value值则:
d = {'a':1,'b':2}
for i in d:
print(d[i])
结果为:1 2
2.第二种方式——items()方法
d = {'a':1,'b':2}
for i in d.items():
print(i)
结果为:('a', 1) ('b', 2) items()将其转化为元组形式
d = {'a':1,'b':2}
for k,v in d.items():
print(k,v)
结果为:a 1 b 2 将元组进行分解
字典不支持索引,切片,重复。因为key值是唯一的;仅仅支持成员操作符和for循环
字典的增删改除
(1)字典的增加
第一种方法,直接使用{}
增加一个元素
此时如果key值存在,则更新对应的value值
如果key值不存在,添加key-value值对
输入:
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt['cai'] = 20
print(dirt)
dirt['a'] = 'redhat'
print(dirt)
结果:
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 20, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 20, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 'redhat'}
第二种方法:使用setdefault添加key值
如果key值存在,不做修改
如果key值不存在,添加对应的key-value
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt.setdefault('cai',20)
print(dirt)
dirt.setdefault('a','redhat')
print(dirt)
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 'redhat'}
增加多个元素——update
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
a = {'a':1,'b':[1,2,3]}
dirt.update(a)
print(dirt)
dirt.update(c=5,d='redhat')
print(dirt)
结果
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 1, 'b': [1, 2, 3]}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 1, 'b': [1, 2, 3], 'c': 5, 'd': 'redhat'}
(2)字典的删除
第一种方式:使用关键字del删除key
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
del dirt['cai']
print(dirt)
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{12: [1, 3, 5], (4, 'westos', 18): 'westos'}
第二种方式:pop删除指定的key的key-value
#如果key存在,删除,并返回删除key对应的value
#如果key不存在,报错
输入
dirt = {‘cai’:18,12:[1,3,5],(4,‘westos’,18):‘westos’}
print(dirt)
item = dirt.pop(‘cai’)
print(dirt)
print(item)
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{12: [1, 3, 5], (4, 'westos', 18): 'westos'}
18
第三种方式:popitem删除最后一个key-value值
返回值是最后一个key-value值,也是一个字典
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
item = dirt.popitem()
print(item)
print(dirt)
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
((4, 'westos', 18), 'westos')
{'cai': 18, 12: [1, 3, 5]}
第四种方式:清空字典clear
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt.clear()
print(dirt)
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{}
(3)字典的查看
第一种:查看字典的key值
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.keys())
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_keys(['cai', 12, (4, 'westos', 18)])
第二种:查看字典的value值
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.values())
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_values([18, [1, 3, 5], 'westos'])
第三种:查看字典的key-value值对
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.items())
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_items([('cai', 18), (12, [1, 3, 5]), ((4, 'westos', 18), 'westos')])
第四种:查看key的value值
get方法获取指定key值对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回值,传值即可
输入
dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.get('cai'))
print(dirt.get(5))
print(dirt.get(5,'key not exit'))
输出
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
18
None
key not exit
本文深入讲解了Python中字典的概念,包括其结构、创建方法、特性、操作符、遍历方式以及增删改查等常见操作,是Python编程学习者不可多得的参考资料。
909

被折叠的 条评论
为什么被折叠?



