原文链接:Python: 字典操作方法 · 语雀
目录
1. 修改值的几种方法
2. 循环字典
3. 筛选字典
4. 字典倒序
5. 字典key value互换
6. 删除元素
7. 添加key
8. 合并两个字典
9. 修改key
方法一:update
my_dict = { 'Khan': 4, 'Ali': 2, 'Luna': 6, 'Mark': 11, 'Pooja': 8, 'Sara': 1}
print('Original:')
print(my_dict)
my_dict.update({'Khan': 6, 'Luna': 9})
print('\nAfter update:')
print(my_dict)
方法二:索引方法
my_dict = { 'Khan': 4, 'Ali': 2, 'Luna': 6, 'Mark': 11, 'Pooja': 8, 'Sara': 1}
for key, value in my_dict.items():
if key == 'Ali':
my_dict[key] = 10
print(my_dict)
方法三:*解包
my_dict = { 'Khan': 4, 'Ali': 2, 'Luna': 6, 'Mark': 11, 'Pooja': 8, 'Sara': 1}
my_dict = { **my_dict, 'Pooja': 12}
print(my_dict)
注:解包方法实际上是创建一个新的字典,而不是更新原来的字典。
注:推荐用解包方法修改,经测试,其他方法可能失败
dict_1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First','Address':'Beijing'}
# 方法一
for key in dict_1:
print(key, ":", dict_1[key])
# 方法二
for key in sorted(dict_1):
print(key, ":", dict_1[key])
# 方法三
for key in dict_1.keys():
print(key, '-->', dict_1[key])
# 方法四
print(dict_1.items())
for k,v in dict_1.items():
print(k,">>",v)
for a,b in dict_1.items():
print(a,"-",b)
循环字典,并将索引打印
my_dict = {'apple': 2, 'banana': 5, 'orange': 8}
for index, (key, value) in enumerate(my_dict.items()):
print(index, key, value)
import random
import time
d = {str(x): random.randint(60, 100) for x in range(1, 21)}
print(d)
方法一:循环迭代
方法二:filter 函数list(filter(lambda x: d[x] > 90, d))
方法三:字典解析式{k:v for k,v in d.items() if v > 90}
方法四:生成器表达式({k: v} for k, v in d.items() if v > 90)
方法一:无效,是按字母顺序倒序排的
ATLst = sorted(ATDict.items(),key=lambda x:x[0],reverse=True)
方法二:
>>> dic = {"a":1,"c":2,"b":3}
>>> dic
{'a': 1, 'c': 2, 'b': 3}
>>> keys = list(dic.keys())
>>> values = list(dic.values())
>>> keys.reverse()
>>> values.reverse()
>>> dict(zip(keys,values))
{'b': 3, 'c': 2, 'a': 1}
# 总之
newdict = {k: v for k, v in zip(reversed(list(short_info.keys())), reversed(list(short_info.values())))}
方法一:循环
inv_map = {v: k for k, v in my_map.items()}
方法二:压包
dic = {'a':1, 'b':2, 'c':3}
dic_new = dict(zip(dic.values(), dic.keys()))
方法三:列表生成器
dic_new = dict([val, key] for key, val in dic.items())
dict = {'name': 'jesse', 'age': 18, 'sex': 'male'}
# clear() 删除字典内所有元素
dict.clear() # dict = {}
# pop() 删除字典给定键key所对应的值, 返回被删除的值
name = dict.pop('name') #
pirnt(name) # jesse
# popitem() 随机返回并删除字典中的一对键和值
pop_obj = dict.popitem()
print(pop_obj) # {'sex': 'male'}
# del 删除单一元素的值, 或 清空整个字典
del dict4['age']
print(dict4) # {'name': 'jesse', 'sex': 'male'}
del dict4 # del删除之后, 就不存在dict这个字典啦
方法一:通过键直接添加
my_dict = {'key1': 'value1', 'key2': 'value2'}
# 添加单个元素
my_dict['key3'] = 'value3'
# 添加多个元素
my_dict['key4'] = 'value4'
my_dict['key5'] = 'value5'
print(my_dict)
方法二:update方法
my_dict = {'key1': 'value1', 'key2': 'value2'}
# 添加单个元素
my_dict.update({'key3': 'value3'})
# 添加多个元素
my_dict.update({'key4': 'value4', 'key5': 'value5'})
print(my_dict)
方法一:update方法
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
# 现在dict1包含了dict2的键值对
print(dict1)
方法二:字典解析
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}
# 或者在Python 3.9及以上版本可以使用 | 操作符
# merged_dict = dict1 | dict2
print(merged_dict)
要修改Python字典(dict)中的键(key),你需要执行以下步骤:
my_dict = {'old_key': 'value'}
# 创建新的键值对
my_dict['new_key'] = my_dict.pop('old_key')
print(my_dict)
# {'new_key': 'value'}