详解Python 字典表达式

  • Post category:Python

Python 的字典(Dictionary)是一种可变容器模型,它可以存储任意类型的对象,如数字、字符串甚至是其他容器类型。字典是通过键(Key)来访问与保存数据的,它们是无序的,键值之间用冒号(:)隔开,每个键值对之间用逗号(,)隔开,整个字典用花括号({})括起来。

Python 字典表达式是一种非常方便的创建字典的方法,它们使用简洁的语法来创建字典,使得代码更简洁易读。Python 字典表达式的语法如下:

{ key: value for (key, value) in iterable }

其中,key 表示字典的键,value 表示字典的值,iterable 表示可迭代对象,可以是列表、元组、集合等,它包含多个元素,每个元素包含两个值,分别对应字典的键和值。上述语句的意思是,遍历 iterable 中的每个元素,将每个元素的第一个值作为字典的键,第二个值作为字典的值,创建一个新的字典。

下面通过两个示例来演示 Python 字典表达式的使用方法:

示例一

假设有一个列表,里面包含多个元素,每个元素包含两个值,第一个值表示城市的名称,第二个值表示城市的人口数。我们想要创建一个字典,其中键为城市的名称,值为城市的人口数。可以使用以下代码创建该字典:

cities = [('New York', 8550405), ('Los Angeles', 3971883), ('Chicago', 2720546), ('Houston', 2296224), ('Phoenix', 1660272)]
city_population = { city: population for (city, population) in cities }
print(city_population)

输出结果如下:

{'New York': 8550405, 'Los Angeles': 3971883, 'Chicago': 2720546, 'Houston': 2296224, 'Phoenix': 1660272}

示例二

假设有两个列表,一个列表包含多个元素,每个元素表示学生的分数,另一个列表包含多个元素,每个元素表示学生的姓名。我们想要创建一个字典,其中键为学生的姓名,值为学生的分数。可以使用以下代码创建该字典:

scores = [80, 90, 70, 85, 75]
names = ['Alice', 'Bob', 'Charlie', 'David', 'Eva']
score_dict = { name: score for (name, score) in zip(names, scores) }
print(score_dict)

输出结果如下:

{'Alice': 80, 'Bob': 90, 'Charlie': 70, 'David': 85, 'Eva': 75}

通过上面两个示例,我们可以看到 Python 字典表达式的使用方法非常简单和方便,它可以帮助我们快速创建字典,减少代码量,提高代码的可读性和可维护性。