0%

dict字典数据类型

简介

  • dict数据类型相关学习笔记

python3 dict字典类型 详解

Python 中的 dict(字典)是一种 无序的可变的索引的数据类型,用于存储 键值对(key-value pair)。在字典中,每个键都映射到一个值,可以使用键来访问对应的值。字典是 Python 中非常重要的容器类型之一,广泛用于各种场景。

1. 创建字典

字典的基本创建方式有几种:

1
2
3
4
5
6
7
8
9
10
11
# 使用花括号定义字典
my_dict = {"apple": 1, "banana": 2, "cherry": 3}

# 使用 dict() 函数创建字典
my_dict = dict(apple=1, banana=2, cherry=3)

# 空字典
empty_dict = {}

# 使用键值对创建字典
my_dict = dict([("apple", 1), ("banana", 2), ("cherry", 3)])

2. 访问字典中的值

可以通过字典的键来访问对应的值:

1
2
3
4
5
6
7
8
my_dict = {"apple": 1, "banana": 2, "cherry": 3}

# 使用键来获取值
print(my_dict["apple"]) # 输出: 1

# 使用 get() 方法(避免 KeyError 错误)
print(my_dict.get("banana")) # 输出: 2
print(my_dict.get("grape", "Not found")) # 输出: Not found
  • **my_dict["key"]**:如果键不存在,会抛出 KeyError
  • **my_dict.get("key")**:如果键不存在,不会抛出异常,返回 None 或自定义的默认值。

3. 修改字典的值

可以通过键来修改值,或者添加新的键值对:

1
2
3
4
5
6
7
8
9
my_dict = {"apple": 1, "banana": 2}

# 修改值
my_dict["apple"] = 10
print(my_dict) # 输出: {'apple': 10, 'banana': 2}

# 添加新键值对
my_dict["cherry"] = 5
print(my_dict) # 输出: {'apple': 10, 'banana': 2, 'cherry': 5}

4. 删除字典中的元素

可以使用 del 语句或 pop() 方法来删除字典中的元素:

1
2
3
4
5
6
7
8
9
10
my_dict = {"apple": 1, "banana": 2, "cherry": 3}

# 使用 del 删除键值对
del my_dict["banana"]
print(my_dict) # 输出: {'apple': 1, 'cherry': 3}

# 使用 pop() 删除键值对,并返回被删除的值
value = my_dict.pop("apple")
print(value) # 输出: 1
print(my_dict) # 输出: {'cherry': 3}

5. 字典的常见方法

5.1 keys()

返回字典中的所有键,结果是一个 字典视图(view),可以迭代。

1
2
my_dict = {"apple": 1, "banana": 2, "cherry": 3}
print(my_dict.keys()) # 输出: dict_keys(['apple', 'banana', 'cherry'])

5.2 values()

返回字典中的所有值,同样是一个字典视图。

1
print(my_dict.values())  # 输出: dict_values([1, 2, 3])

5.3 items()

返回字典中的所有键值对,结果是一个包含元组的视图。

1
print(my_dict.items())  # 输出: dict_items([('apple', 1), ('banana', 2), ('cherry', 3)])

5.4 update()

将一个字典的内容更新到另一个字典中,或者添加新的键值对。

1
2
my_dict.update({"orange": 4, "pear": 5})
print(my_dict) # 输出: {'apple': 1, 'banana': 2, 'cherry': 3, 'orange': 4, 'pear': 5}

5.5 clear()

清空字典的所有内容。

1
2
my_dict.clear()
print(my_dict) # 输出: {}

6. 字典的遍历

可以使用 for 循环遍历字典的键、值或键值对:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
my_dict = {"apple": 1, "banana": 2, "cherry": 3}

# 遍历字典的键
for key in my_dict:
print(key)
# 输出:
# apple
# banana
# cherry

# 遍历字典的值
for value in my_dict.values():
print(value)
# 输出:
# 1
# 2
# 3

# 遍历字典的键值对
for key, value in my_dict.items():
print(f"{key}: {value}")
# 输出:
# apple: 1
# banana: 2
# cherry: 3

7. 字典的应用场景

  • 存储配对数据:比如,存储商品的名称和价格、学生的姓名和成绩等。
  • 统计数据:例如,统计每个单词出现的次数。
  • 缓存数据:使用字典作为缓存来存储临时计算结果。

8. 字典的优势

  • 快速查找:字典的查找时间复杂度是 O(1),非常高效。
  • 灵活的键:字典的键可以是任意不可变类型,如字符串、整数、元组等。
  • 动态扩展:字典的大小是动态变化的,可以根据需要增删键值对。

9. 字典的限制

  • 不可变的键:字典的键必须是不可变的数据类型,像列表就是不能作为字典的键的,因为列表是可变的。
  • 无序性:虽然在 Python 3.7 之后,字典保持插入顺序,但它本质上是无序的。在某些 Python 版本中,字典的顺序是不保证的。

10. 总结

字典是 Python 中常用的数据结构,尤其适合存储需要映射关系的数据。它的 查询效率高,并且能够动态增删元素。它的应用非常广泛,从简单的映射关系到复杂的缓存系统,都离不开字典的使用。

希望这能帮助你更好地理解和使用字典!

感谢老板支持!敬礼(^^ゞ