Python数据类型–字典dictionary

  • Post category:Python

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