首页 > 后端开发 > Python教程 > 在Python中创建列表字典的方法

在Python中创建列表字典的方法

WBOY
发布: 2023-08-26 13:01:13
转载
2879 人浏览过

在Python中创建列表字典的方法

Python中的字典是以键值对的形式存储的数据的集合。我们可以分配不同的数据类型作为键的值。它帮助编码人员存储数据和类别流派并相应地构建数据库。

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

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

创建字典

对于字典创建,我们使用“{}”大括号。让我们看看语法 -

dict1 = {"Car": "AUDI"}
登录后复制

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

创建列表

对于列表创建,我们使用“[]”方括号。让我们看看语法 -

lis1 = ["Name", "age", "gender", "qualification"]
登录后复制

这里,“姓名”、“年龄”、“性别”、“资格”是列表“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”是第二个键。

如果我们颠倒顺序,即我们将 list 指定为该字典的键,那么让我们看看会发生什么 -

示例

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 方法来执行此操作,因为它效率更高,并且会在丢失键的情况下创建默认值。我们遍历列表并将每个键和值对附加到字典中。

使用设置默认方法

setdeafault() 方法用于返回与给定键关联的字典值。此方法的独特之处在于,如果指定的键不存在,则它会通过插入创建该特定键。让我们看看实现 -

示例

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 循环”后,我们设置了值初始化的范围。

  • 我们将值及其键附加到空字典中。

  • 最后,我们打印了字典。

结论

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

以上是在Python中创建列表字典的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板