在 Python 中将列表转换为字典

在 Python 中将列表转换为字典并不难。

让我们看看将列表转换为字典的不同方法。

介绍

在进入本教程之前,让我们看一个将列表转换为字典的示例。 我们将有一个元组列表(每个元组由两个元素组成)或只是一个元素列表。 我们将接受这两个输入并将它们转换为字典。

例子:

在下面的示例中,我们获取了一个元组列表并将其转换为字典。 我们将每个元组的第一个元素作为键,将第二个元素作为字典的值。

输入:list_one = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]

输出:{‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}

在下面的示例中,我们采用了一个元素列表并将其转换为一个字典,其中包含替代元素作为键和值。 如果没有元素留给它作为键(如果列表有奇数个元素),我们将给键 null 。

输入:list_one = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]

输出:{‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: 无}

我们已经看到了本教程的目标。 我们将以不同的方式讨论这两个示例。 让我们从第一个例子开始。

元组列表——字典

让我们看看如何将元组列表转换为字典。 您可以尝试在以下步骤的帮助下编写代码。

  • 如上例所示,使用虚拟数据初始化元组列表(确保列表中的每个元组恰好有两个元素)。
  • 将元组列表传递给 dict 方法,并将结果存储在一个新变量中。
  • 就是这样,我们已经用一行代码将一个元组列表转换成了一个字典。
# list of tuples
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# converting to dictionary
list_of_tuples_dict = dict(list_of_tuples)

# printing the result dict
print(list_of_tuples_dict)

您可以通过执行它来测试上面的程序输出。 您将得到我们在示例中看到的结果。

列表 – 字典

我们已经了解了如何将元组列表转换为字典,这在 Python 中是一件简单的事情。 在本节中,我们将了解如何将普通列表转换为字典。

  本地 SEO 指南

请参阅本教程第一部分中的第二个示例以获得更多清晰度。

按照以下步骤编写第二个示例的代码。

对于没有任何值的元素(包含奇数个元素的列表),我们已将默认值填充为 None。 为此,我们需要使用模块 itertools 中名为 zip_longest 的方法。

  • 导入模块 itertools 并使用示例中给出的奇数个元素初始化一个列表。
  • 将列表转换为可迭代对象以避免在 zip_longest 方法中重复键值对。
  • 现在,将可迭代对象作为 None 传递给方法 zip_longest 和 fillvalue。 它将返回一个 zip 对象。
    • 我们必须传递两次 iterable,因为它从两个 iterable 中获取键和值。 在我们的例子中,键和值都在同一个可迭代对象中。 所以,我们需要在fillvalue之前传两次。
  • 使用 dict 方法将对象转换为 Python 字典。
  • 打印结果。
# importing the module
import itertools

# plain list with odd number of elements
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# converting it to iterable to avoid repetition
plain_list_iter = iter(plain_list)

# converting the plain_list to dict
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# convert the zip_longest object to dict using `dict`
plain_list_dict = dict(plain_list_dict_object)

# print it
print(plain_list_dict)

你可以给 fillvalue 任何你想要的。 用它尝试不同的东西。 并执行代码以查看我们是否获得示例中提到的准确输出。

结论

希望您喜欢将列表转换为字典。 让我们在下一个教程中见面。

接下来,学习如何在 Python 中展平列表。

  如何像 Excel Pro 一样使用文本到列

快乐编码🙂

喜欢阅读这篇文章吗? 与世界分享怎么样?