Python数据类型–字典dictionary
什么是字典?
字典是Python中的一种数据类型,它是由一些键(key)和它们对应的值(value)组成的,这些键-值对称为项(item),项之间用逗号隔开,整个字典放在大括号中。字典的键必须唯一,值可以是任意类型,包括数字、字符串、列表、元组等。
创建字典
我们可以通过以下几种方式创建字典:
- 使用大括号 {} 创建空字典
python
empty_dict = {}
- 使用大括号 {} 创建包含键值对的字典
python
some_info = {'title': 'Python入门教程', 'author': '张三', 'publish_time': '2021-10-15'}
- 使用 dict() 函数创建字典
python
another_dict = dict(name='Tom', age=30, job='engineer')
注意:dict() 函数的参数可以是一个包含键值对的元组,或者包含键和值的列表,元组和列表中的每个元素都必须是长度为 2 的序列。
访问字典中的值
我们可以通过键来访问字典中的值,类似于使用下标来访问列表中的元素。
some_info = {'title': 'Python入门教程', 'author': '张三', 'publish_time': '2021-10-15'}
print(some_info['title']) # 输出 "Python入门教程"
如果我们访问的键不存在于字典中,会抛出 KeyError 异常。
修改字典中的值
字典是可变对象,我们可以通过给键赋值的方式修改字典中的值。
some_info['title'] = 'Python进阶教程'
print(some_info['title']) # 输出 "Python进阶教程"
添加键值对
我们可以使用赋值的方式给字典添加新的键值对。
some_info['price'] = 99.9
print(some_info) # 输出 {'title': 'Python进阶教程', 'author': '张三', 'publish_time': '2021-10-15', 'price': 99.9}
删除键值对
我们可以使用 del 语句来删除字典中的键值对。
del some_info['price']
print(some_info) # 输出 {'title': 'Python进阶教程', 'author': '张三', 'publish_time': '2021-10-15'}
遍历字典
我们可以使用 for 循环来遍历字典中的键值对。
some_info = {'title': 'Python入门教程', 'author': '张三', 'publish_time': '2021-10-15'}
for key, value in some_info.items():
print(key + ': ' + value)
输出:
title: Python入门教程
author: 张三
publish_time: 2021-10-15
示例说明
以下是一个简单的调查问卷,记录了多个人的姓名、年龄和爱好。我们可以使用字典来表示每个人的信息,将姓名作为键,年龄和爱好作为值。通过遍历字典,我们可以打印出每个人的信息。
survey = {
'Alice': {'age': 20, 'hobby': ['reading', 'swimming']},
'Bob': {'age': 25, 'hobby': ['traveling', 'photography']},
'Charlie': {'age': 30, 'hobby': ['sports', 'music']}
}
for name, info in survey.items():
print(name + ': ', end='')
print('age=' + str(info['age']) + ',', end='')
print('hobby=' + ','.join(info['hobby']))
输出:
Alice: age=20,hobby=reading,swimming
Bob: age=25,hobby=traveling,photography
Charlie: age=30,hobby=sports,music
以下是一个简单的函数,接受一个字符串作为参数,统计其中每个字符出现的次数,并将统计结果以字典形式返回。通过遍历字典,我们可以将统计结果打印出来。
def char_count(s):
result = {}
for c in s:
result[c] = result.get(c, 0) + 1
return result
s = 'hello, world!'
count_dict = char_count(s)
for c, count in count_dict.items():
print("'" + c + "': " + str(count))
输出:
'h': 1
'e': 1
'l': 3
'o': 2
',': 1
' ': 1
'w': 1
'r': 1
'd': 1
'!': 1