MEMOO
MEMOO
Published on 2025-04-18 / 0 Visits
0
0

Python字典及其操作

摘要:在本节中,你将了解Python中的字典类型,它允许你创建一个键值对的集合。

Python字典类型简介

Python字典是一个键值对的集合,其中每个键都与一个值相关联。

键值对中的值可以是 数字字符串列表元组,甚至是另一个字典。

实际上,你可以使用Python中任何有效的数据类型作为键值对中的值。

键值对中的键必须是不可变的。换句话说,键不能被更改,例如,数字字符串元组等。

Python使用花括号 {} 来定义一个字典。在花括号内,你可以放置零个、一个或多个键值对。

以下示例定义了一个空字典:

empty_dict = {}

通常,你会在循环(无论是 for循环 还是 while循环)之前定义一个空字典。然后在循环内部,向字典中添加键值对。

要查看一个字典的类型,可以使type()函数,如下所示:

empty_dict = {}

print(type(empty_dict))

输出:

<class 'dict'> 

以下示例定义了一个包含一些键值对的字典:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

这个名person的字典有五个键值对,它们分别代表名字、姓氏、年龄、最喜欢的颜色以及活跃状态。

访问字典中的元素

要从字典中通过键来访问对应的值,你可以使用方括号表示法或 get() 方法。

1)使用方括号表示法

要访问与某个键关联的值,你需将该键放在方括号内:

dict[key]

以下展示了如何获取 person 字典中与键 first_namelast_name 相关联的值:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

print(person['first_name'])

print(person['last_name'])

输出:

John

Doe

2)使用get()方法

如果你尝试访问一个不存在的键,就会得到一个错误。例如:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

ssn = person['ssn']

错误:

Traceback (most recent call last):

  File "dictionary.py", line 15, in <module>

    ssn = person['ssn']

KeyError: 'ssn'

为了避免这种错误,你可以使用字典的 get() 方法:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

ssn = person.get('ssn')

print(ssn)

输出:

None

如果键不存在get() 方法会返回 None,而不是抛出 KeyError 异常。请注意None 表示不存在任何值。

当键不存在时get() 方法还可以通过将默认值作为第二个参数传入来返回该默认值。

以下示例中,如果 person 字典中不存在 ssn 键,就会返回字符串 '000-00-0000'

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

ssn = person.get('ssn', '000-00-0000')

print(ssn)

输出:

000-00-0000

添加键值对

由于字典具有动态结构,你可以在任何时候向其中添加新的键值对。

要向字典中添加一个新的键值对,你需要指定字典的名称,接着在方括号中写上新的键,并赋予其新的值。

以下示例向 person 字典中添加了一个新的键值对:

person['gender'] = 'Female' 

修改键值对

要修改与某个键相关联的值,你需要指定字典名称,将该键放在方括号中,并赋予与该键相关联的新值:

dict[key] = new_value

以下示例修改了 person 字典中与 age 键相关联的值:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

person['age'] = 26

print(person)

输出:

{'first_name': 'John', 'last_name': 'Doe', 'age': 26, 'favorite_colors': ['blue', 'green'], 'active': True}

删除键值对

要通过键来删除一个键值对,你可以使用 del 语句:

del dict[key]

在这个语法中,你要指定字典的名称以及你想要删除的键。

以下示例从 person 字典中删除了键 'active'

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

del person['active']

print(person)

输出:

{'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green']}

遍历字典

要检查一个字典,你可以使用 for 循环来遍历它的键值对、键或者值。

请注意,自 Python 3.7 版本起,当你遍历一个字典时,你获取到的键值对的顺序与你插入它们时的顺序是相同的。

遍历字典中所有键值对

Python字典提供了一个名为 items() 的方法,该方法会返回一个对象,这个对象包含一个列表,列表中的元素是以元组形式呈现的键值对。

例如:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

print(person.items())

输出:

dict_items([('first_name', 'John'), ('last_name', 'Doe'), ('age', 25), ('favorite_colors', ['blue', 'green']), ('active', True)])

要遍历字典中的所有键值对,你可以使用一个 for 循环,并使用两个变量 keyvalue 来解包列表中的每个元组:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

for key, value in person.items():

    print(f"{key}: {value}")

输出:

first_name: John

last_name: Doe

age: 25

favorite_colors: ['blue', 'green']

active: True

请注意,在 for 循环中你可以使用任何变量名,不一定非得是 keyvalue

遍历字典中的所有键

有时候,你可能只想遍历字典中的所有键。在这种情况下,你可以使用 for 循环结合 keys() 方法来实现。

keys() 方法会返回一个对象,该对象包含字典中所有键的列表。

例如:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

for key in person.keys():

    print(key)

输出:

first_name

last_name

age

favorite_colors

active

实际上,当遍历一个字典时,遍历所有键是默认行为。因此,你无需使用 keys() 方法。

下面的代码与上述示例中的代码会返回相同的输出:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

for key in person:

    print(key)

遍历字典中所有值

values() 方法会返回一个仅包含值的列表,其中不包含任何键。

要遍历字典中的所有值,你可以使用 for 循环结合 values() 方法:

person = {

    'first_name': 'John',

    'last_name': 'Doe',

    'age': 25,

    'favorite_colors': ['blue', 'green'],

    'active': True

}

for value in person.values():

    print(value)

输出:

John

Doe

25

['blue', 'green']

True

总结

  • Python字典是一个键值对的集合,其中每个键都有一个与之关联的值。

  • 使用方括号或 get() 方法通过键来访问对应的值。

  • 使用 del 语句根据键从字典中删除一个键值对。

  • 使用 for 循环遍历字典中的键、值以及键值对。


Comment