Python 创建字典列表的方法

Python 创建字典列表的方法

Python中的字典是以键值对的形式存储数据的集合。我们可以为键分配不同的数据类型作为值。它帮助程序员存储数据、分类和构建数据库。

另一方面,列表也可以存储数据,但是这里的元素与多个值无关。字典和列表都有索引。在列表中,我们以序列的形式存储数据,可以遍历和操作这些序列。

在本文中,我们将两种格式合并在一起,创建一个字典的列表。在深入讨论这个主题之前,让我们快速浏览一下本文的概述。

创建字典

我们使用“{}”花括号来创建字典。让我们看一下语法 –

dict1 = {"Car": "AUDI"}

这里 “Car” 是键,而“AUDI” 是键值。

创建一个列表

我们使用“[]”方括号来创建列表。让我们看一下语法:

lis1 = ["Name", "age", "gender", "qualification"]

在这里,“Name”、“age”、“gender”和“qualifications”是列表“lis1”的元素。

当我们尝试将这些格式组合成列表字典时,意味着我们必须将列表视为键值对。但问题是列表是作为键还是值。分配键的规则是它应该是“不可变的”或不可改变的。

因此,列表无法作为字典的键。因此,在处理列表字典时,我们将列表视为不可变键的“值”。

创建列表字典的不同方法

将列表作为下标形式的值进行分配

在这种方法中,我们直接命名键并将它们分配为一个值的列表。让我们看一下它的实现-

示例

dict1 = {}
dict1["Name"] = ["RAM", "RAVI", "TARUN", "MOHAN"] #assigning 1st key
dict1["Age"] = [22, 23, 18, 27] #assigning 2nd key
print(dict1)

输出

{'Name': ['RAM', 'RAVI', 'TARUN', 'MOHAN'], 'Age': [22, 23, 18, 27]}

这里,我们创建了一个空字典,然后外部赋予了键的值。”Name”是第一个键,”Age”是第二个键。

如果我们反转顺序,即将列表赋值作为此字典的键,让我们看看会发生什么-

示例

dict1 = {["Name", "Age", "Gender"]: "RAVI"}

输出

dict1 = {["Name", "Age", "Gender"]: "RAVI"}
TypeError: unhashable type: 'list'

因为列表是不可变的,所以不能作为键,所以导致了错误。

使用dict或defaultdict方法

dict()和defaultdict()方法都可以用来生成一个包含列表的字典。让我们看一下实现的过程:

示例

from collections import defaultdict
lis1 = [("Name", "Arjun"), ("Age", 22), ("Age", 23), ("Age", 28), ("Name", "RAVI"),("Name", "ADITYA")]
dict1 = defaultdict(list)
for keys, values in lis1:
   dict1[keys].append(values)
print(dict1)

输出

defaultdict(<class 'list'>, {'Name': ['Arjun', 'RAVI', 'ADITYA'], 'Age': [22, 23, 28]})
  • 这种方法的有趣之处在于它允许以值的形式将列表信息传递给方括号。这意味着对于给定的方括号,我们只能传递一个键值。

  • 如果我们想增加键值,我们需要一个带有正确键名的新方括号。这增加了程序的可读性。

  • 在这里,我们导入了collections模块来使用”defaultdict”方法。我们传递了具有正确信息顺序的列表。我们使用了defaultdict方法来执行这个操作,因为它更高效,并在缺少键的情况下创建一个默认值。我们遍历列表,并将每个键值对追加到一个字典中。

使用set default方法

使用setdefault()方法可以返回与给定键关联的字典值。这个方法的独特之处在于,如果指定的键不存在,则通过插入创建该特定键。让我们看看具体的实现 –

示例

dict1 = {}
lis1 = [23, 24, 28, 12, 22]
for key in lis1:
   for values in range(int(key), int(key)+4):
      dict1.setdefault(values, []).append(key)
print(dict1)

输出

{23: [23, 22], 24: [23, 24, 22], 25: [23, 24, 22], 26: [23, 24], 27: [24], 28: [28], 29: [28], 30: [28], 31: [28], 12: [12], 13: [12], 14: [12], 15: [12], 22: [22]}

使用这种方法,我们可以创建每个键的记录。这种方法的问题在于数据类型的选择,只有纯数字的输入可以被考虑为范围值。

在这里,

  • 我们创建了一个空字典,然后传入一个包含存储信息的列表。

  • 我们遍历列表,将键和值分开。我们将每个纯数字输入作为键,然后使用另一个“for循环”设置一个范围初始化值。

  • 我们将值和它们的键添加到空字典中。

  • 最后,我们打印字典。

结论

在本文中,我们学习了字典创建和处理的基本概念。我们讨论了创建列表字典的各种方法,并了解了每种方法的复杂性和限制。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程