Python: 字典操作方法

原文链接:Python: 字典操作方法 · 语雀

目录

1. 修改值的几种方法

2. 循环字典

3. 筛选字典

4. 字典倒序

5. 字典key value互换

6. 删除元素

7. 添加key

8. 合并两个字典

9. 修改key


1. 修改值的几种方法

方法一: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)

注:解包方法实际上是创建一个新的字典,而不是更新原来的字典。

注:推荐用解包方法修改,经测试,其他方法可能失败

2. 循环字典

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)

3. 筛选字典

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)

4. 字典倒序

方法一:无效,是按字母顺序倒序排的

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())))}

5. 字典key value互换

方法一:循环

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())

6. 删除元素

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这个字典啦

7. 添加key

方法一:通过键直接添加

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)

8. 合并两个字典

方法一: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)

9. 修改key

要修改Python字典(dict)中的键(key),你需要执行以下步骤:

  1. 创建一个新的键值对,并将其添加到字典中。
  2. 删除原来的键值对。
my_dict = {'old_key': 'value'}

# 创建新的键值对
my_dict['new_key'] = my_dict.pop('old_key')

print(my_dict)
# {'new_key': 'value'}

你可能感兴趣的:(Python,python)