趣玩Python第七期-字典

133 阅读5分钟

开篇

歪小王: 欢迎回到《趣玩 Python 》!本期节目我们邀请到了重量级嘉宾—— Dictionary 类型!掌声有请!

(Dictionary 手持一个大钥匙和锁盒,优雅地走上舞台)

Dictionary:大家好!我是 Python 中的 Dictionary,也叫字典!我是用于存储键值对的数据结构,是程序员整理和查找数据的好帮手。

歪小王: Dictionary 老师,您能再详细介绍一下什么是字典吗?

基本概念

Dictionary: 好的,字典是 Python 中的一种重要数据类型,它专门用于存储成对的数据。每一对数据由组成。键用来标识值,而值则是与该键相关联的数据。

  • 键 (key) :每个键在字典中是唯一的,不能重复。键通常是不可变的类型,比如字符串、数字、元组。
  • 值 (value) :值可以是任何类型的数据,字符串、数字、列表,甚至是另一个字典都可以作为值。

歪小王: 这让我想到现实生活中的字典,字典中的每个单词都有一个定义,而在 Python 中,每个键都有一个对应的值。能用个例子来说明吗?

Dictionary: 没错!就像现实中的字典,我们可以用键去查找它对应的值。来看这个例子:

person = {"name": "Alice", "age": 25, "city": "New York"}
  • 在这个字典里,"name""age""city" 是键,它们分别对应的值是 "Alice"25"New York"

你可以通过键快速获取对应的值:

print(person["name"])  # 输出: Alice

歪小王: 哇,这个数据结构简直太实用了!每个键和值一一对应,非常直观。您能更详细地讲讲字典的结构和特点吗?

2. 字典的特点

  1. 无序性: 在 Python 3.7 之前,字典是无序的,这意味着键值对的存储顺序并不一定与添加的顺序相同。不过在 Python 3.7 之后,字典变得有序了,插入的顺序就是遍历字典的顺序。
  2. 可变性: 字典是可变的,可以随时添加、修改或删除键值对。
  3. 键的唯一性: 字典中的每个键是唯一的,不能有重复的键。如果你添加一个相同的键,那么新值会覆盖旧值。

内置函数和方法

歪小王: Dictionary 老师,您在 Python 中都有哪些常用的内置函数和方法呢?能详细讲一下吗?

Dictionary: 没问题,我的功能可是十分丰富的,下面我会为大家详细讲解几个最常用的内置方法。

1. len(dict)

这个函数可以用来返回字典中键值对的数量。比如:

person = {"name": "Alice", "age": 25, "city": "New York"}
print(len(person))  # 输出: 3

字典 person 中有三个键值对,因此返回 3。

2. dict.get(key, default)

有时你想访问字典中的某个键,但又不确定这个键是否存在。如果键不存在,直接访问会抛出错误。为了解决这个问题,可以使用 get() 方法,它在键不存在时返回一个默认值(你可以自定义)。

print(person.get("name"))  # 输出: Alice
print(person.get("job", "Unknown"))  # 输出: Unknown

在第二个例子中,字典中没有 job 键,所以返回了默认值 "Unknown"

3. dict.keys()

这个方法返回字典中所有的键,作为一个可迭代的视图对象。比如:

print(person.keys())  # 输出: dict_keys(['name', 'age', 'city'])

4. dict.values()

类似地,values() 方法返回字典中所有的值:

print(person.values())  # 输出: dict_values(['Alice', 25, 'New York'])

5. dict.items()

这个方法返回字典中的所有键值对,以 (键, 值) 的元组形式返回:

print(person.items())  # 输出: dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])

这对于遍历字典时特别有用,你可以通过 for 循环来同时访问键和值:

for key, value in person.items():
    print(f"{key}: {value}")

输出:

name: Alice
age: 25
city: New York

6. dict.update(other_dict)

这个方法可以用来更新字典,将另一个字典的键值对添加或更新到当前字典中:

extra_info = {"job": "Engineer", "hobby": "Photography"}
person.update(extra_info)
print(person)
# 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'job': 'Engineer', 'hobby': 'Photography'}

7. dict.pop(key)

pop() 方法用于删除字典中的某个键,并返回它的值。如果键不存在,还可以指定一个默认值:

age = person.pop("age")
print(age)  # 输出: 25
print(person)  # 输出: {'name': 'Alice', 'city': 'New York', 'job': 'Engineer', 'hobby': 'Photography'}

8. dict.clear()

这个方法会清空字典中的所有键值对,字典变成空的:

person.clear()
print(person)  # 输出: {}

歪小王: 这些方法真的是非常方便啊!可以对字典进行各种灵活的操作,能够轻松管理大量数据!

Dictionary: 没错,我就是专门为高效存储和管理数据而生的。如果你需要处理成对的数据,无论是统计、记录还是快速查找,字典绝对是你最好的选择!

实际应用

歪小王: 原来 Dictionary 老师不仅善于存储信息,而且操作起来如此方便!您能给我们再举几个实际应用的例子吗?

Dictionary:当然没问题!字典常用于存储和处理结构化的数据,比如:

  • 记录学生成绩:
grades = {"Alice": 90, "Bob": 85, "Charlie": 92}
print(grades["Bob"])  # 输出: 85
  • 计数统计:
word_count = {"hello": 3, "world": 2, "python": 5}
word_count["python"] += 1  # 更新计数
print(word_count)  # 输出: {"hello": 3, "world": 2, "python": 6}
  • 存储复杂数据:
people = {
    "Alice": {"age": 25, "job": "Engineer"},
    "Bob": {"age": 30, "job": "Artist"}
}
print(people["Alice"]["job"])  # 输出: Engineer

歪小王: 非常感谢 Dictionary 老师!您带给我们的知识不仅深刻,还非常实用!相信大家对字典的用法已经有了更深入的了解。

Dictionary:非常感谢大家!希望你们能好好利用我,在 Python 的世界里创造更多精彩!