当前位置:首页>python>Python字典保姆级入门,这一篇够了

Python字典保姆级入门,这一篇够了

  • 2026-09-05 01:26:24
Python字典保姆级入门,这一篇够了

学Python的路上,字典(Dictionary)大概是你绕不开的一个坎。

不是因为它难,而是因为它太好用了。几乎所有实用的Python程序里,你都能看到字典的身影——配置文件、数据结构、API返回结果,全是字典。

这篇文章,就来把字典讲通透。

字典是什么

简单说,字典是一种键-值对(Key-Value)的数据结构。

你可以把它想象成一本真实的字典:单词是键,释义是值。查一个词,返回对应的解释——非常快。

在Python里,是这样表示的:

alien_0 = {'color': 'green', 'points': 5}

这就是一个字典,包含两个键-值对:

  • 键 'color' → 值 'green'
  • 键 'points' → 值 5

基本操作:增删改

添加和修改

往字典里加内容,简单到爆:

alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0) # {'color': 'green', 'points': 5}

如果键已经存在,那就是修改;不存在,就是新增。

删除

不需要了?直接删:

del alien_0['points']

注意:删了就没了,不会消失。

遍历字典:四种方式

这是字典最核心的部分,也是面试常问的。

1. 遍历所有键-值对:.items()

favorite_languages = {

'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}

for name, language in favorite_languages.items():
print(f"{name.title()} 喜欢的语言是 {language.title()}")

输出:

Jen 喜欢的语言是 Python
Sarah 喜欢的语言是 C
Edward 喜欢的语言是 Ruby
Phil 喜欢的语言是 Python

2. 只遍历键:.keys()

不需要值的时候,这样:

for name in favorite_languages.keys():
    print(name.title())

keys() 返回所有键的列表。可以直接判断某键是否存在:

if 'erin' not in favorite_languages.keys():
    print("Erin,诚邀你参与调查!")

3. 按顺序遍历键:sorted()

字典本身不保证顺序,要排序输出,加个sorted():

for name in sorted(favorite_languages.keys()):
    print(f"{name},感谢参与调查")

4. 只遍历值:.values()

只要值,不管键:

for language in set(favorite_languages.values()):
    print(language.title())

这里加了个set()——是因为值可能有重复,set()会自动去重。

嵌套:字典的真正威力

单个字典能存的信息有限,但字典可以嵌套,一下就打开了天地。

字典列表

意思是:列表里的每个元素,都是一个字典。

实战场景——生成30个外星人:

aliens = []

for alien_number in range(30):
aliens.append({'color': 'green', 'points': 5, 'speed': 'slow'})

print(f"共创建了 {len(aliens)} 个外星人")

如果其中几个外星人变色、提速,可以这样改:

for alien in aliens[0:3]:
    if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['points'] = 10

字典里套列表

一个键对应多个值的情况,用列表搞定:

pizza = {

'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese', 'pepperoni'],
}

print(f"你点了一个 {pizza['crust']} 皮披萨,配料如下:")
for topping in pizza['toppings']:
print(f" - {topping}")

字典里套字典

每个用户一个字典,再统一存在一个大字典里:

users = {

'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}

for username, info in users.items():
full_name = f"{info['first']} {info['last']}"
print(f"{username}: {full_name},住在 {info['location'].title()}")

多层嵌套看着复杂,但逻辑非常清晰:先拆到每一层,再逐层访问。

几个实用小技巧

1. 给字典设置默认值

用setdefault(),键不存在时才写入:

alien.setdefault('status', 'alive')

2. 快速统计出现次数

字典配合setdefault()是经典组合:

votes = ['python', 'java', 'python', 'go', 'java', 'python']
count = {}
for lang in votes:
count.setdefault(lang, 0)
count[lang] += 1

3. 字典推导式

一行生成字典,Pythonic到底:

squares = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

总结

操作代码
新增/修改d['key'] = value
删除del d['key']
遍历键值for k, v in d.items()
遍历键for k in d.keys()
遍历值for v in d.values()
安全取值d.get('key', default)

字典这东西,没有捷径,多写就会。一开始可能会跟列表搞混,但用多了你会发现——字典才是Python里最接近真实世界的数据结构。

下一章,我们来聊while循环和用户输入,让你的程序真正"活"起来。

最新文章

随机文章