在 Python 中使用自定义值列表初始化字典


字典是通过存储键值对来定义的,而字典中的自定义值列表意味着与所有键元素关联的列表可以根据条件进行修改或更改。这为程序提供了一种高效的方法,用户可以在列表中添加、修改或删除元素以满足需求。在 Python 中,我们有一些内置函数 - range()、len()、zip()、dict() 和 enumerate() 可以用来初始化带有自定义值列表的字典。

语法

以下语法在示例中使用 -

range()

内置函数 range() 通过根据给定的长度返回数字序列来定义。

len()

内置函数 len() 通过返回长度对象来定义。

zip()

zip() 是 Python 中一个内置函数,可用于迭代任意数量的参数,例如列表、元组、字符串等。

dict()

dict() 是 Python 中一个内置函数,用于创建字典。此字典收集带有元素的特定键。

enumerate()

内置函数 enumerate() 通过迭代元素序列并跟踪特定索引位置来工作。

使用 for 循环

该程序在 for 循环中使用内置函数 len() 和 range() 来迭代键和值列表。使用此过程,字典设置自定义值列表。

示例

在以下示例中,我们将从初始化两个不同的列表开始程序 - 字典的键和值。然后在变量 res 中使用空字典来存储结果(字典形式)。接下来,使用 for 循环迭代程序的第一个列表,并将所有元素设置为键。现在,使用赋值运算符(即 =),它将第二个列表设置为字典中的值。最后,我们借助名为 res 的变量打印结果。

k = ['P', 'Q', 'R', 'S', 'T']
v = [11, 92, 53, 94, 67]
res = {}
for i in range(len(k)):
    res[k[i]] = [v[i]]
print("Dictionary with custom value list in Python:\n", res)

输出

 Dictionary with custom value list in Python:
 {'P': [11], 'Q': [92], 'R': [53], 'S': [94], 'T': [67]}

使用 zip() 函数

该程序使用两个内置函数 dict() 和 zip() 来初始化带有自定义值列表的字典。

示例

在以下示例中,开始初始化两个变量 - keys 和 values,它们将以列表的形式存储元素。接下来,在 dict() 函数内部使用 zip() 函数,该函数接受两个参数 - k(设置键)和 v(变量 i 迭代以设置特定键的值)。所有这些过程都存储在变量 res 中。最后,我们借助变量 res 打印结果。

k = ['M', 'N', 'O']
v = [100, 200, 300]
res = dict(zip(k, [[i] for i in v]))
print("The Custom value in the form of a list:\n", res)

输出

 The Custom value in the form of a list:
 {'M': [100], 'N': [200], 'O': [300]}

使用字典

该程序使用内置函数 len() 和 range() 来计算给定列表的特定长度,并通过给定元素的顺序对列表进行排序以设置范围。

示例

在以下示例中,我们将开始在变量 Subject 和 Score 中分别存储两个列表。然后应用字典(即 {}),使用 for 循环计算特定键元素与值对,并将其存储在变量 res 中。接下来,借助变量 res 显示程序输出。

Subject = ['Math', 'English', 'Hindi', 'Science']
Score = [95, 78, 82, 65]
res = {Subject[i]: [Score[i]] for i in range(len(Subject))}
print("Subject with a score:\n", res)

输出

 Subject with a score:
 {'Math': [95], 'English': [78], 'Hindi': [82], 'Science': [65]}

使用 enumerate() 函数

该程序在 enumerate() 函数内部使用内置函数 zip(),它跟踪特定迭代以初始化带有自定义值列表的字典。

示例

在以下示例中,开始程序初始化两个变量 - person(设置姓名列表)和 age(设置人员的年龄)。在变量 res 中使用字典推导式将计算字典的特定键值对并显示结果。

person = ['John', 'Mark', 'Jonathan', 'Sam', 'Karl']
age = [18, 26, 22, 24, 33]
res = {person: [age] for i, (person, age) in enumerate(zip(person, age))}
print("Person name with age:\n",res)

输出

Person name with age: 
{'John': [18], 'Mark': [26], 'Jonathan': [22], 'Sam': [24], 'Karl': [33]}

结论

我们讨论了使用自定义值列表解决字典初始化的不同方法。字典推导式是基于特定条件迭代具有键值对的对象的最佳方法。字典的一个真实示例可以在任何书籍的末尾找到,其中同时提到了主题和页码。

更新于: 2023年8月14日

303 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告