Python基础——字典

目录

一. 字典的基本操作

1. 创建字典

2. 访问字典中的值

3. 修改字典中的值 

4. 添加新的键值对

5. 删除字典中的元素

6. 字典的遍历

7. 检查键是否存在

8. 获取字典长度

9. 复制字典

10. 合并字典

二. 字典的常用方法

三. 字典的特点

四. 字典的应用场景


在 Python 中,字典是一种内置的数据类型,它是一个无序的、可变的、键值对集合。每个字典中的元素都是由“键”与“值”组成,键是唯一的,而值可以是任意类型的数据。字典非常适用于存储和查找关联数据。

一. 字典的基本操作

1. 创建字典

字典可以通过花括号 {} 或者使用 dict() 函数来创建。

# 使用花括号创建字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 使用 dict() 函数创建字典
my_dict2 = dict(name='Bob', age=30, city='Los Angeles')
2. 访问字典中的值

通过键来访问字典中的值。如果键不存在,会抛出 KeyError 异常。

print(my_dict['name'])  # 输出 'Alice'
print(my_dict['age'])   # 输出 25

安全访问:使用 get() 方法可以避免 KeyError,如果键不存在,返回 None 或自定义的默认值。

print(my_dict.get('name'))      # 输出 'Alice'
print(my_dict.get('address'))   # 输出 None
print(my_dict.get('address', 'Unknown'))  # 输出 'Unknown'
3. 修改字典中的值

可以通过键来更新字典中的值。

my_dict['age'] = 26  # 更新值
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}
4. 添加新的键值对

如果字典中没有某个键,直接给它赋值即可添加新的键值对。

my_dict['address'] = '123 Street'
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York', 'address': '123 Street'}
5. 删除字典中的元素
  • 使用 del 删除指定键值对。
  • 使用 pop() 删除指定键值对并返回其值。
  • 使用 popitem() 删除并返回最后一对键值对。
  • 使用 clear() 清空字典。
del my_dict['city']  # 删除键 'city' 和它的值
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'address': '123 Street'}

value = my_dict.pop('address')  # 删除并返回 'address' 键对应的值
print(value)  # 输出 '123 Street'
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26}

my_dict.clear()  # 清空字典
print(my_dict)  # 输出 {}
6. 字典的遍历

可以通过不同的方式遍历字典:

  • 遍历字典的键(keys()
  • 遍历字典的值(values()
  • 遍历字典的键值对(items()
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 遍历键
for key in my_dict.keys():
    print(key)

# 遍历值
for value in my_dict.values():
    print(value)

# 遍历键值对
for key, value in my_dict.items():
    print(f"{key}: {value}")
7. 检查键是否存在

使用 in 关键字检查某个键是否存在于字典中。

if "name" in person:
    print("Name exists")
8. 获取字典长度

使用 len() 函数获取字典中键值对的数量。

print(len(person))  # 输出字典中键值对的数量
9. 复制字典

使用 copy() 方法创建字典的一个浅复制。

new_person = person.copy()
10. 合并字典

在 Python 3.9 及以上版本中,可以使用 | 和 |= 操作符来合并字典。

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2  # {'a': 1, 'b': 3, 'c': 4}

# 或者使用 |= 来就地更新 dict1
dict1 |= dict2

二. 字典的常用方法

  • update():将一个字典中的键值对添加到另一个字典中。如果键已存在,则更新其值。
  • pop():移除指定键并返回其值。
  • popitem():移除并返回最后一个键值对。
  • clear():移除字典中的所有元素。
  • copy():返回字典的浅拷贝。
  • setdefault():如果键不存在,则添加指定的键值对;如果键已存在,则返回该键的值。
# 使用 update()
my_dict.update({'gender': 'female'})
print(my_dict)  # 输出 {'name': 'Alice', 'age': 25, 'city': 'New York', 'gender': 'female'}

# 使用 copy()
new_dict = my_dict.copy()
print(new_dict)  # 输出 {'name': 'Alice', 'age': 25, 'city': 'New York', 'gender': 'female'}

# 使用 setdefault()
value = my_dict.setdefault('country', 'USA')
print(value)  # 输出 'USA' (添加了 'country' 键)

三. 字典的特点

  • 键是唯一的:字典中的每个键必须是唯一的。重复的键会覆盖掉之前的值。
  • 无序:字典本身是无序的,在 Python 3.7 之前,字典中的键值对没有固定的顺序;从 Python 3.7 开始,字典保持插入顺序。
  • 可变:字典是可变数据类型,可以在创建后修改、删除或者添加键值对。

四. 字典的应用场景

字典通常用于存储关联数据,比如:

  • 存储用户信息(如:用户名、年龄、邮箱等)。
  • 实现映射关系(如:学生ID与姓名之间的映射)。
  • 用于频率统计(如:单词出现频率统计)。
# 统计单词出现频率
text = "hello world hello python"
word_count = {}

for word in text.split():
    word_count[word] = word_count.get(word, 0) + 1

print(word_count)  # 输出 {'hello': 2, 'world': 1, 'python': 1}

总结,字典是 Python 中非常强大且常用的数据类型,它提供了高效的键值对存储和快速的查找、修改功能。

本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。