python中字典dict的操作技巧汇总

1. 创建字典

在Python中,可以通过使用大括号或者通过dict()方法来创建字典。使用大括号创建字典时,可以通过键值对的形式来初始化,如下所示:

# 使用大括号创建字典

d = {'name': 'Alice', 'age': 25, 'gender': 'female'}

如果想要使用dict()方法创建字典,可以将键值对视为参数传递给该方法:

# 使用dict()方法创建字典

d = dict(name='Alice', age=25, gender='female')

1.1 注意事项

字典的键必须是不可变的数据类型,如字符串、数字或元组;而值则可以是任意类型,如字符串、数字、列表等。如果在创建字典时有重复的键,后面的值会覆盖前面的值。

在Python 3.7及以上的版本中,字典是有序的,即创建时键值对的顺序与遍历时的顺序相同。如果使用Python 3.6及以下的版本,字典是无序的。

2. 访问字典中的值

我们可以使用键来访问字典中的值:

# 访问字典中的值

print(d['name']) # 输出:'Alice'

如果访问字典中不存在的键,则会报错。如果希望在键不存在时返回默认值,可以使用get()方法,如下所示:

# 使用get()方法访问字典中的值

print(d.get('address', 'unknown')) # 输出:'unknown'

此外,我们还可以使用items()方法来遍历字典中的所有键值对:

# 遍历字典中的所有键值对

for key, value in d.items():

print(key, value)

该方法返回一个包含所有键值对的可迭代对象,每次迭代返回一个键值对元组。

3. 修改字典

我们可以使用键来修改字典中的值:

# 修改字典中的值

d['age'] = 26

print(d) # 输出:{'name': 'Alice', 'age': 26, 'gender': 'female'}

如果修改的键不存在,则会将该键值对添加到字典中。

4. 删除字典元素

我们可以使用del关键字来删除字典中的元素:

# 删除字典中的元素

del d['gender']

print(d) # 输出:{'name': 'Alice', 'age': 26}

同时,我们也可以使用pop()方法来删除指定键对应的键值对,该方法会返回被删除的值:

# 使用pop()方法删除字典中的元素

age = d.pop('age')

print(d) # 输出:{'name': 'Alice'}

print(age) # 输出:26

5. 复制字典

我们可以使用copy()方法来复制字典:

# 复制字典

d1 = d.copy()

print(d1) # 输出:{'name': 'Alice'}

如果直接将一个字典赋值给另一个变量,则两个变量将引用同一个对象,修改其中一个变量会影响到另一个变量:

# 直接赋值会复制引用

d2 = d

d['name'] = 'Bob'

print(d2) # 输出:{'name': 'Bob'}

6. 合并字典

字典可以使用update()方法进行合并,新键将添加到字典中,已存在的键的值将被替换为新的值:

# 合并字典

d1 = {'name': 'Alice', 'age': 25}

d2 = {'gender': 'female', 'address': 'beijing'}

d1.update(d2)

print(d1) # 输出:{'name': 'Alice', 'age': 25, 'gender': 'female', 'address': 'beijing'}

7. 字典排序

字典是无序容器,不支持直接排序。不过,我们可以使用内置的sorted()函数对字典进行排序,该函数返回一个排好序的列表,而不是一个字典:

# 对字典按键升序排序

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

sorted_d = sorted(d.items(), key=lambda x: x[0])

print(sorted_d) # 输出:[('a', 1), ('b', 2), ('c', 3)]

上述代码中,sorted()函数的key参数接受一个函数,该函数指定按什么值排序。这里使用lambda表达式,以键作为排序条件。

8. 字典推导式

像列表一样,字典也支持推导式。字典推导式的语法是:{key: value for element in iterable},其中key和value是新字典中的键和值,element是可迭代对象中的元素。例如:

# 使用字典推导式创建新字典

d = {i: i ** 2 for i in range(5)}

print(d) # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

字典推导式也支持条件过滤和嵌套循环,用法与列表推导式相同。

总结

在Python中,字典是一种非常常用的数据类型,可用于存储键值对。本文介绍了创建字典、访问字典的值、修改和删除字典元素、复制字典、合并字典、排序字典和使用字典推导式等操作技巧。掌握这些技巧可以让我们更加高效地使用字典,提高编程效率。

后端开发标签