python基础之字典

1.字典概述

Python中的字典是一种可变的、无序的数据结构,用于存储键值对。字典是由一系列键和与每个键相关联的值组成的,其中每个键必须是独一无二的。在许多编程语言中这被称为映射(mapping)。Python中的字典使用{}括起来,其中每个键与其值之间用冒号:分隔,键值对之间使用逗号分隔。下面是一个简单的例子:

score = {'Alice': 85, 'Bob': 75, 'Cathy': 90, 'David': 80}

print(score)

输出结果如下:

{'Alice': 85, 'Bob': 75, 'Cathy': 90, 'David': 80}

2.创建字典

2.1 直接创建

在Python中,可以使用{}直接创建一个空字典,也可以在花括号中提供键值对列表来创建一个非空字典。下面是一个示例:

# 创建一个空字典

my_dict = {}

# 创建一个非空字典

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict)

输出结果如下:

{'one': 1, 'two': 2, 'three': 3}

2.2 通过关键字创建

如果要使用变量名作为键构建字典,在Python 3.7及以上版本中,可以使用字典解包(dictionary unpacking),它使用**符号将字典转换为关键字参数。下面是一个示例:

# 使用字典解包创建字典

name = 'Bob'

age = 25

person = {'name': name, 'age': age}

my_dict = {'person': person}

print(my_dict)

# 使用关键字创建字典

my_dict = dict(name='Tom', age=22)

print(my_dict)

输出结果如下:

{'person': {'name': 'Bob', 'age': 25}}

{'name': 'Tom', 'age': 22}

3.访问字典中的值

在Python中,可以使用键来访问字典中的值,例如:

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict['two'])

输出结果如下:

2

4.修改字典

可以使用键来添加、修改和删除字典中的元素。例如,下面的代码演示如何通过键来添加新的键值对:

my_dict = {'one': 1, 'two': 2, 'three': 3}

my_dict['four'] = 4

print(my_dict['four'])

输出结果如下:

4

通过键来修改字典中的值,可以直接使用键来赋值:

my_dict = {'one': 1, 'two': 2, 'three': 3}

my_dict['one'] = 100

print(my_dict['one'])

输出结果如下:

100

通过键来删除字典中的元素,可以使用Python的del语句:

my_dict = {'one': 1, 'two': 2, 'three': 3}

del my_dict['one']

print(my_dict)

输出结果如下:

{'two': 2, 'three': 3}

5.字典方法

Python的字典类型提供了许多强大的方法,这里介绍一些常用的方法。

5.1 keys()

keys()方法返回一个包含所有字典键的列表,列表中的键按照它们在字典中出现的顺序排列:

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict.keys())

输出结果如下:

dict_keys(['one', 'two', 'three'])

但是需要注意的是,Python 3中的字典键列表不再是一个真正的列表,而是一个类似于列表的视图(view)对象,它可以动态地反映底层字典中的变化。需要将它们显式地转换为列表:

my_dict = {'one': 1, 'two': 2, 'three': 3}

keys_list = list(my_dict.keys())

print(keys_list)

输出结果如下:

['one', 'two', 'three']

5.2 values()

values()方法返回一个包含所有字典值的列表,列表中的值按照它们在原始字典中出现的顺序排列:

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict.values())

输出结果如下:

dict_values([1, 2, 3])

5.3 items()

items()方法返回一个包含所有字典项(item)的列表,其中每个项都是一个包含键和值得元组,列表中的元组按照它们在原始字典中出现的顺序排列:

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict.items())

输出结果如下:

dict_items([('one', 1), ('two', 2), ('three', 3)])

5.4 get()

get()方法返回指定键的值。如果键不存在,则返回None或指定的默认值。例如:

my_dict = {'one': 1, 'two': 2, 'three': 3}

print(my_dict.get('two'))

print(my_dict.get('four')) # 返回None

print(my_dict.get('four', 0)) # 返回0

输出结果如下:

2

None

0

6.字典的遍历

可以使用Python的for循环来遍历字典中的所有键和值。例如,下面的代码演示了如何遍历字典中的所有键和对应的值:

my_dict = {'one': 1, 'two': 2, 'three': 3}

# 遍历所有键

for key in my_dict:

print(key)

# 遍历所有值

for value in my_dict.values():

print(value)

# 遍历所有键和值

for key, value in my_dict.items():

print(key, value)

输出结果如下:

one

two

three

1

2

3

one 1

two 2

three 3

7.字典的嵌套

字典中的值可以是另一个字典。例如,下面的代码演示了如何创建一个嵌套字典:

my_dict = {'person1': {'name': 'Bob', 'age': 25},

'person2': {'name': 'Tom', 'age': 22},

'person3': {'name': 'Mary', 'age': 30}}

print(my_dict['person1'])

print(my_dict['person1']['name'])

输出结果如下:

{'name': 'Bob', 'age': 25}

Bob

8.总结

通过本文的介绍,可以看出Python中字典的强大之处。与其他编程语言的映射相比,Python的字典具有动态性、容错性、可变性、高效性和可读性。掌握Python中字典的基本概念和常用方法,能够让开发人员更加高效地使用Python进行编程。

后端开发标签