1. Python字典介绍
Python字典是一种无序、可变的数据类型,存储的内容是键值对(key-value pairs),其中key必须是不可变的类型,如数字、字符串或元组,而value可以是任意类型。可以将Python字典视为一张表格,其中的每个项都有一个唯一的键和一个相应的值。
Python中的字典是用大括号{}来表示的,每个键值对之间用:隔开,并用,分隔。例如:
person = {'name': 'Alice', 'age': 25, 'gender': 'female'}
上述代码定义了一个person字典,其中包含三个键值对,分别是'name'、'age'和'gender'。
2. Python字典基本操作
2.1 访问字典中的值
可以通过方括号[]加上键名来访问字典中的值。例如:
print(person['name'])
这会输出字典中键为'name'的值:'Alice'。
2.2 修改字典中的值
和访问字典中的值一样,可以通过方括号[]加上键名来修改字典中的值。例如:
person['age'] = 26
print(person)
这会将person字典中键为'age'的值从25修改为26。
2.3 向字典添加新的键值对
可以使用方括号[]来向字典中添加新的键值对。例如:
person['city'] = 'Shanghai'
print(person)
这会向person字典中添加一个键为'city',值为'Shanghai'的键值对。
2.4 删除字典中的键值对
可以使用del语句来删除字典中的键值对。例如:
del person['gender']
print(person)
这会从person字典中删除键为'gender'的键值对。
3. Python字典高级操作
3.1 字典内置方法
Python中的字典有许多内置方法可以使用,如keys()、values()、items()等。
3.1.1 keys()方法
keys()方法返回字典中所有键的列表。例如:
print(person.keys())
这会输出person字典中所有键的列表:['name', 'age', 'city']。
3.1.2 values()方法
values()方法返回字典中所有值的列表。例如:
print(person.values())
这会输出person字典中所有值的列表:['Alice', 26, 'Shanghai']。
3.1.3 items()方法
items()方法返回字典中所有键值对的元组列表。例如:
print(person.items())
这会输出person字典中所有键值对的元组列表:[('name', 'Alice'), ('age', 26), ('city', 'Shanghai')]。
3.2 字典推导式
字典推导式是一种快速创建字典的方法。它和列表推导式的语法类似,使用大括号{}来表示字典,通过一个表达式来生成键值对。
例如:
squares = {x: x*x for x in range(1, 6)}
print(squares)
这会输出1到5的平方组成的字典:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}。
3.3 字典合并
可以使用update()方法将一个字典合并到另一个字典中,如果有相同的键,则会用新的值进行覆盖。
例如:
person_info = {'name': 'Bob', 'gender': 'male', 'job': 'engineer'}
person.update(person_info)
print(person)
这会将person_info字典中的键值对合并到person字典中,输出结果为{'name': 'Bob', 'age': 26, 'city': 'Shanghai', 'gender': 'male', 'job': 'engineer'}。
3.4 collections模块中的OrderedDict
Python的字典是无序的,无法保证其中元素的顺序,但可以使用collections模块中的OrderedDict类创建一个有序字典。
例如:
from collections import OrderedDict
d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3
print(d)
输出结果为OrderedDict([('a', 1), ('b', 2), ('c', 3)])。
4. 总结
Python中的字典是一种十分常用的数据类型,可以用来存储键值对。在基本操作方面,可以使用方括号来访问、修改和添加键值对,也可以使用del语句来删除键值对。在高级操作方面,Python提供了许多内置方法,如keys()、values()、items()等,也可以使用字典推导式来快速创建字典,使用update()方法和collections模块中的OrderedDict类来合并和创建有序字典。