Python - 将单个项目字典组合成列表值


将单个项目字典组合成列表值对于数据聚合或重新格式化很有用。在 Python 中,我们可以使用多种方法来执行此任务,例如使用循环、使用列表推导式、使用 map() 函数以及使用 operator.itemgetter() 函数。在本文中,我们将探讨将单个项目字典组合成列表值的多种方法。

方法 1:使用循环

一种简单的方法是遍历单个项目字典并将它们的值追加到列表中。让我们借助一个示例来实现此循环。

语法

list_name.append(element)

此处,append() 函数是用于将元素添加到 list_name 末尾的列表方法。它通过将指定元素作为新项目添加来修改原始列表。

示例

在下面的示例中,我们创建了一个名为 result 的空列表。然后,我们遍历 single_item_dicts 列表中的每个字典。通过使用 values() 方法,我们将字典的值作为类似列表的对象获取。由于每个字典只包含一个项目,因此我们可以使用索引 [0] 提取值。最后,我们将提取的值追加到 result 列表中。输出显示所需的列表值。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = []
for dictionary in single_item_dicts:
    result.append(list(dictionary.values())[0])

print(result)

输出

['apple', 'red', 'lion']

方法 2:使用列表推导式

我们可以使用列表推导式将单个项目字典组合成列表值。让我们借助一个示例来了解此列表推导式方法。

语法

[expression for item in list if condition]

此处,表达式遍历列表中的每个项目,并根据表达式末尾的 if 条件筛选元素。

示例

在下面的示例中,列表推导式允许我们在单行中生成一个新列表。在这种情况下,我们在方括号内使用与先前方法相同的逻辑。生成的列表推导式生成所需的列表值。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = [list(dictionary.values())[0] for dictionary in single_item_dicts]

print(result)

输出

['apple', 'red', 'lion']

方法 3:使用 map() 函数

我们还可以使用 map() 函数以及 lambda 函数从字典中提取值。让我们借助一个示例来实现此 map() 函数。

语法

map(function, iterable)

此处,map() 函数接受两个参数:函数和可迭代对象。它将函数应用于可迭代对象的每个元素,并返回一个产生结果的迭代器。在将单个项目字典组合成列表值的上下文中,该函数可以是 lambda 函数或用于从每个字典中提取所需值的预定义函数。

示例

在下面的示例中,我们使用 map() 函数将 lambda 函数应用于 single_item_dicts 列表中的每个字典。lambda 函数将字典作为输入,使用与之前相同的逻辑提取其值,并将其返回。我们将结果包装在 list() 调用中以获取值的列表。

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = list(map(lambda dictionary: list(dictionary.values())[0], single_item_dicts))

print(result)

输出

['apple', 'red', 'lion']

方法 4:使用 operator.itemgetter() 函数

Python 的 operator 模块提供了一个名为 itemgetter() 的便捷函数。它允许我们从字典中提取特定项目。我们可以对单个项目字典实现此方法,如以下示例中所述。

语法

operator.itemgetter(*items)

此处,operator 模块中的 itemgetter() 函数创建一个可调用对象,该对象从给定对象中检索指定的项目。它可以接受多个参数,表示要检索的项目的索引或键。在我们的例子中,我们使用 itemgetter(0) 从每个字典中提取第一个项目(值)。

示例

在下面的示例中,我们首先导入 operator 模块。然后,我们将 itemgetter(0) 函数应用于每个字典的值,这将返回每个字典的第一个项目(值)。与之前的方法类似,我们使用 map() 函数遍历 single_item_dicts 列表并提取值。最后,我们将生成的 map 对象转换为列表。

import operator

single_item_dicts = [{'fruit': 'apple'}, {'color': 'red'}, {'animal': 'lion'}]

result = list(map(operator.itemgetter(0), map(dict.values, single_item_dicts)))

print(result)

输出

['apple', 'red', 'lion']

结论

在本文中,我们讨论了如何使用不同的 Python 方法将单个项目字典组合成列表值。我们介绍了四种方法:使用循环、列表推导式、map() 函数和 operator.itemgetter() 函数。每种方法都展示了一种实现所需结果的不同方法。可以根据您正在解决的问题类型使用上述任何一种方法。

更新于: 2023-07-19

95 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告