如何用Python的字典函数来处理键值对?
Python中的字典(Dictionary)是一种无序的数据集合,在其中每一个元素由一个键值对(key-value pair)组成。字典对于处理键值对非常方便,因为它可以通过键(key)查找对应的值(value),而且可以根据需要随时添加、删除、修改键值对。Python提供了丰富的字典函数,让我们更方便地进行各种键值对的操作。
一、 创建字典
我们可以使用{}或dict()函数来创建一个空的字典,也可以在创建字典的时候添加键值对。下面是一些创建字典的例子:
# 创建空字典
d1 = {}
d2 = dict()
# 创建有初始值的字典
d3 = {'name':'Jack', 'age':25, 'gender':'male'}
d4 = dict(zip(['name', 'age', 'gender'], ['Jack', 25, 'male']))
# 添加键值对
d5 = {}
d5['name'] = 'Tom'
d5['age'] = 30
d5['gender'] = 'male'
# 使用fromkeys方法创建字典
d6 = {}.fromkeys(['name', 'age', 'gender'])
d7 = dict.fromkeys(['name', 'age', 'gender'], 'unknown')
二、 访问字典元素
字典的元素是通过键(key)来访问的,使用字典的get()方法可以更加安全地访问字典元素,因为get()方法在找不到对应键的时候不会抛出异常而是返回None或者给定的默认值。下面是一些访问字典元素的例子:
# 访问字典元素
d = {'name':'Jack', 'age':25, 'gender':'male'}
print(d['name'])
print(d.get('age'))
print(d.get('email')) # 没有email这个键,返回None
print(d.get('phone', '000-000-0000')) # 没有phone这个键,返回给定的默认值
# 打印字典所有元素
for k in d:
print(k, '=', d[k])
# 使用items()方法遍历字典元素
for k, v in d.items():
print(k, '=', v)
# 使用keys()方法遍历字典键
for k in d.keys():
print(k)
# 使用values()方法遍历字典值
for v in d.values():
print(v)
三、 修改和删除字典元素
我们可以直接给字典的某个键赋新的值从而修改字典元素。我们也可以使用pop()函数来删除字典元素,或者用del语句来删除整个字典。下面是一些修改和删除字典元素的例子:
# 修改字典元素
d = {'name':'Jack', 'age':25, 'gender':'male'}
d['age'] = 26
print(d)
# 删除字典元素
d.pop('age')
print(d)
# 删除整个字典
del d
四、 其他字典函数
Python提供了很多方便操作字典的函数,下面介绍一些常用的函数。
1. clear():删除字典中的所有元素。
2. copy():返回字典的一个副本。
3. fromkeys(seq[, v]):创建一个新字典,以seq中元素作为键,v作为值。
4. get(key, default=None):返回指定键的值。如果键不存在于字典中,返回default值。
5. items():以列表返回可遍历的(键, 值) 元组数组。
6. keys():以列表返回一个字典所有的键。
7. pop(key[, default]):删除字典给定键 key 所对应的值,并返回该值。如果字典中不存在该键,则返回 default 值。
8. popitem():随机返回并删除字典中的一对键和值(一般删除末尾对)。
9. setdefault(key[, default]):和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为default。
10. update([other]):把字典other的键/值对更新到字典中,如果有相同的键,则会覆盖对应的值。
11. values():以列表返回字典中的所有值。
五、 总结
通过本文介绍的字典函数,我们可以更加方便地处理键值对数据。字典的包容性使它可以兼容多种数据类型作为键和值,使用字典的函数可以方便快捷地查询、更新、删除、添加键值对等操作。需要注意的是,在使用这些函数的时候应当考虑到字典的键值对顺序是无序的,需要开发者自己根据情况处理。
