Python 字典 (Dictionary) 详细介绍
什么是字典
在 Python 中,字典 (Dictionary) 是一种无序的键值对 (key-value pair) 集合。字典使用键来访问其对应的值,键和值可以是任意类型的数据。
创建字典
我们可以使用以下两种方式来创建一个字典。
直接使用大括号
我们可以使用大括号 {}
来创建一个空的字典,然后逐个添加键值对。
my_dict = {}
my_dict['name'] = 'Alice'
my_dict['age'] = 20
my_dict['gender'] = 'female'
print(my_dict) # {'name': 'Alice', 'age': 20, 'gender': 'female'}
也可以在创建字典时指定键值对。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict) # {'name': 'Alice', 'age': 20, 'gender': 'female'}
使用 dict() 函数
我们可以使用 dict()
函数来创建字典,也可以将列表或元组转换成字典。
my_dict1 = dict(name='Bob', age=30, gender='male')
print(my_dict1) # {'name': 'Bob', 'age': 30, 'gender': 'male'}
my_dict2 = dict([('name', 'Charlie'), ('age', 40), ('gender', 'male')])
print(my_dict2) # {'name': 'Charlie', 'age': 40, 'gender': 'male'}
my_dict3 = dict(zip(['name', 'age', 'gender'], ['David', 50, 'male']))
print(my_dict3) # {'name': 'David', 'age': 50, 'gender': 'male'}
访问字典
我们可以使用字典中的键来访问其对应的值。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict['name']) # Alice
print(my_dict['age']) # 20
print(my_dict['gender']) # female
如果字典中不存在指定的键,将会引发 KeyError
异常。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict['height']) # KeyError: 'height'
可以使用 get()
方法来避免上述错误。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict.get('name')) # Alice
print(my_dict.get('height')) # None
更新字典
我们可以通过为已有的键赋值来更新字典中的值,也可以使用 update()
方法来同时更新多个键值对。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
my_dict['age'] = 21
print(my_dict) # {'name': 'Alice', 'age': 21, 'gender': 'female'}
my_dict.update({'age': 22, 'height': 170})
print(my_dict) # {'name': 'Alice', 'age': 22, 'gender': 'female', 'height': 170}
删除字典
我们可以使用 del
关键字来删除整个字典或单个键值对。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
del my_dict['age']
print(my_dict) # {'name': 'Alice', 'gender': 'female'}
del my_dict
# NameError: name 'my_dict' is not defined
字典常用方法
items()
返回一个包含所有 (键, 值) 元组的列表。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict.items()) # dict_items([('name', 'Alice'), ('age', 20), ('gender', 'female')])
keys()
返回一个包含所有键的列表。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict.keys()) # dict_keys(['name', 'age', 'gender'])
values()
返回一个包含所有值的列表。
my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
print(my_dict.values()) # dict_values(['Alice', 20, 'female'])
示例说明
示例1:计数器
下面的示例演示了如何使用字典来实现一个简单的计数器。
text = 'hello world'
counter = {}
for c in text:
if c not in counter:
counter[c] = 1
else:
counter[c] += 1
print(counter) # {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
示例2:查找标签
下面的示例演示了如何从 HTML 标签中提取出所有的标签名。
html = '<html><head><title>Page Title</title></head><body><p>test<a href="#">link</a></p><br/></body></html>'
tags = set()
pos = 0
while True:
start = html.find('<', pos)
if start == -1:
break
end = html.find('>', start + 1)
if end == -1:
break
tag = html[start + 1:end]
if '/' in tag:
tag = tag[tag.index('/') + 1:]
if ' ' in tag:
tag = tag[:tag.index(' ')]
tags.add(tag)
pos = end + 1
print(tags) # {'a', 'br', 'title', 'head', 'body', 'html', 'p'}
以上就是 Python 字典详细介绍的完整攻略。希望能对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 字典(Dictionary)详细介绍 - Python技术站