欢迎访问宙启技术站
智能推送

Python字典神器!10个高效使用技巧!

发布时间:2023-05-30 05:09:29

Python中字典是一种高效的数据结构,数以万计的应用场景都可以使用字典来解决问题,特别是在数据处理和信息存储中发挥着重要作用。本篇文章将介绍十个高效使用字典的技巧,希望对广大Python开发者的日常工作和学习有所帮助。

1.创建字典的方法

创建字典最常用的方法是使用大括号({})包含键值对,格式如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

如果需要同时定义多个空字典,可以使用类似于列表的生成式来实现:

dicts = {i:{} for i in range(5)}
print(dicts)    # {0: {}, 1: {}, 2: {}, 3: {}, 4: {}}

2.遍历字典的方法

遍历字典有多种方法,下面介绍两种较为常用的方法:

(1)遍历键值对

可以使用for循环遍历字典中的所有键值对,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

for key, value in dict.items():
    print(key, value)

输出结果如下:

Name Tom
Age 22
Gender Male

(2)遍历所有键或所有值

如果只需要遍历字典中的所有键或所有值,可以分别使用keys()和values()方法,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

# 遍历所有键
for key in dict.keys():
    print(key)

# 遍历所有值
for value in dict.values():
    print(value)

输出结果如下:

Name
Age
Gender
Tom
22
Male

3.获取字典中某个键的值

如果需要获取字典中某个键对应的值,可以使用get()方法或直接访问键名,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

# 使用get()方法
name = dict.get('Name')
print(name)    # Tom

# 直接访问键名
age = dict['Age']
print(age)    # 22

需要注意的是,如果获取一个不存在的键的值,使用get()方法不会抛出异常,而是返回None值,如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

# 获取不存在的键的值
address = dict.get('Address')
print(address)    # None

4.修改字典中的值

如果需要修改一个已经存在的键的值,可以直接使用键名赋值的方法进行修改,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

dict['Age'] = 23
print(dict)    # {'Name': 'Tom', 'Age': 23, 'Gender': 'Male'}

5.向字典中添加新键值对

可以使用键名赋值的方法向字典中添加新的键值对,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

dict['Country'] = 'China'
print(dict)    # {'Name': 'Tom', 'Age': 22, 'Gender': 'Male', 'Country': 'China'}

6.删除字典中的键值对

可以使用del语句删除字典中的键值对,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

del dict['Age']
print(dict)    # {'Name': 'Tom', 'Gender': 'Male'}

7.检查某个键是否存在于字典中

可以使用in和not in操作符检查某个键是否存在于字典中,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male'}

# 检查键是否存在
if 'Age' in dict:
    print('Age exists')
else:
    print('Age does not exist')

# 检查键是否不存在
if 'Address' not in dict:
    print('Address does not exist')
else:
    print('Address exists')

8.按键或值排序字典

Python中的字典是无序的,如果需要按键或值排序字典,可以使用sorted()函数,代码如下:

dict = {'c': 2, 'b': 4, 'a': 3, 'd': 1}

# 按键排序
for key in sorted(dict.keys()):
    print(key, dict[key])

# 按值排序
for key, value in sorted(dict.items(), key=lambda x: x[1]):
    print(key, value)

按键排序的输出结果如下:

a 3
b 4
c 2
d 1

按值排序的输出结果如下:

d 1
c 2
a 3
b 4

9.从字典中取出子集

可以使用字典推导式从字典中取出子集,代码如下:

dict = {'Name': 'Tom', 'Age': 22, 'Gender': 'Male', 'Country': 'China'}

subset = {key: value for key, value in dict.items() if key in ('Name', 'Age')}
print(subset)    # {'Name': 'Tom', 'Age': 22}

10.使用defaultdict

Python中的defaultdict是一个高效的数据结构,可以提高代码的可读性和性能。defaultdict是一个字典类型,与普通字典 的区别是,当试图访问一个不存在的键时,会自动返回该键的默认值而不是引发KeyError异常,代码如下:

from collections import defaultdict

dict = defaultdict(int)

dict['Tom'] += 1
dict['Jerry'] += 1
dict['Tom'] += 1

print(dict)    # defaultdict(<class 'int'>, {'Tom': 2, 'Jerry': 1})

以上就是十个高效使用Python字典的技巧,希望对读者有所帮助。