Day10 字典详解——python学习之路
程序员文章站
2022-03-11 12:43:16
...
字典
定义
使用 {} 定义
vardict = {'a':1, 'b':2, 'c':3}
使用 dict(key=value)函数 进行定义
vardict = dict(name='zhang', sex='男', age=22)
数据类型的转换(需要二级元组或二级列表)
vardict = dict([['a',1], ['b',2]])
zip压缩函数,dict转类型
var1 = [1,2,3,4]
var2 = ['a','b','c','d']
vardict = dict(zip(var1,var2))
print(vardict) #(输出) {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
字典相关操作
获取元素 dict[key]
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 获取
res = var1['a']
修改元素 dict[key] = value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 修改
var1['a'] = 111
删除元素 del dict[key]
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 删除
del var1['a']
添加元素 dict[newkey] = value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 添加
var1['aa'] = 'AA'
print(var1) #(输出) {'b': 2, 'c': 3, 'd': 4, 'aa': 'AA'}
成员检测,只能检测key,不能检测value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 检测是否存在
print('a' in var1) #(输出) True
字典的遍历访问
- (推荐)遍历字典时, 使用 items() 函数, 可以遍历获取key和value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for k,v in var1.items():
print(f'{k}={v}',end=',')
#(输出) a=1 b=2 c=3 d=4
- 在遍历当前的字典时,只能获取当前的key,再根据key获取对应的value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for i in var1:
print(var1[i], end=',') # 通过字典的key获取对应value
#(输出) 1 2 3 4
- 遍历字典所有的key
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for k in var1.keys():
print(k, end=' ')
#(输出) a b c d
- 遍历字典所有的value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for v in var1.values():
print(v, end=' ')
#(输出) 1 2 3 4
字典的相关函数
len()
获取当前字典的长度, 只能检测当前有多少个键值对
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = len(var1)
print(res) #(输出) 4
keys()
获取当前字典中的所有key
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = var1.keys()
print(res) #(输出) dict_keys(['b', 'c', 'd', 'aa'])
values()
获取字典中所有的value
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = var1.values()
print(res) #(输出) dict_values([2, 3, 4, 'AA'])
items()
获取当前字典的长度, 只能检测当前有多少个键值对
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = var1.items()
print(res) #(输出) 4
len()
获取当前字典的长度, 只能检测当前有多少个键值对
var1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = len(var1)
print(res) #(输出) dict_items([('b', 2), ('c', 3), ('d', 4), ('aa', 'AA')])
iter()
返回以字典的键为元素的迭代器
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = iter(vardict) # 存放键的迭代器
pop()
指定弹出,通过 key 从当前字典中弹出键值对
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = vardict.pop('a')
print(res) #(输出) 1
popitem()
末尾弹出,把最后加入到字典中的键值对删除并返回一个元组 LIFO: 后进先出
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = vardict.popitem()
print(res) #(输出) ('d', 4)
get()
使用 get() 获取字典中的元素, 存在则返回, 不存在则默认返回None
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 存在返回value
print(vardict.get('b')) #(输出) 2
# 不存在返回None
print(vardict.get('apple')) #(输出) None
# 可以修改不存在返回的默认值
print(vardict.get('apple', 'no find')) #(输出) no find
update()
更新字典, 如果key存在, 则更新, 不存在则添加
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
vardict.update(b=22, abc=123) # 修改b的值为22, 添加abc=123
vardict.update({'c':33, 'def':44}) # 也可以接受字典对象
print(vardict)
#(输出) {'a': 1, 'b': 22, 'c': 33, 'd': 4, 'abc': 123, 'def': 44}
setdefault()
如果key存在, 返回它的值, 如果不存在, 插入值为default 的键 key, 并返回 default , default默认为None
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
res = vardict.setdefault('aa','123456') # 不存在key='aa', 插入'aa'=123456, 返回123456
print(res) #(输出) 123456
print(vardict) #(输出) {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'aa': '123456'}
clear()
移除字典中的所有元素
copy()
- 字典的浅拷贝
字典的推导式
语法:{key:value for key, value in iterable}⇒ 新字典
vardict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 将值为偶数的元素取出生成一个新字典
newdict = {k:v for k, v in vardict.items() if v % 2 == 0}
print(newdict)
#(输出) {'b': 2, 'd': 4}
下一篇: 利用数组将一串字符接到另一串字符的后面