python - 如何根据具有两个键值对的字典列表中的另一个 k-v 对的值从一个键值对创建值列表

标签 python

我正在尝试遍历一个字典列表,目标是根据另一个 k,v 对的值从一个 k,v 对生成值列表。每个字典包含两个k,v对,它们各自的键是相同的。

例如,给定这个列表:

dict_list =[{'basket': 1, 'fruit': 'apple'},
            {'basket': 1, 'fruit': 'orange'},
            {'basket': 1, 'fruit': 'peach'},
            {'basket': 2, 'fruit': 'kiwi'},
            {'basket': 2, 'fruit': 'lemon'},
            {'basket': 3, 'fruit': 'grape'}]

我想生成这个列表:

list_list = [['apple','orange','peach'],
             ['kiwi','lemon'],
             ['grape']]

我很难通过迭代来实现隔离列表。到目前为止,我只能得到所有水果值的列表。感谢您提出任何建议。

最佳答案

您可以使用 itertools 中的 groupby。

import itertools

list_list = [[f['fruit'] for f in v] for k, v in itertools.groupby(dict_list, key=lambda x: x['basket'])]

这假设 dict_list 中的篮子条目已排序(或者相同的篮子在列表中彼此相邻)。如果不是这种情况,只需在 groupby 之前排序。

关于python - 如何根据具有两个键值对的字典列表中的另一个 k-v 对的值从一个键值对创建值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517287/

相关文章:

python - 如何使用 PySide2 在 qml 中设置值?

python - 我在 python 中遇到列表退出错误

python - 仅在 H2 内抓取内容 - BeautifulSoup

python - Selenium find element_by_id 不适用于单选按钮

python - Seaborn 调色板 - 防止颜色回收

python - 如何仅预测标签而不是概率

python - 识别 Pandas 数据框中组中重复项的更好方法?

Python ElementTree XML 解析

Python3 检查 Unicode 字符是否不存在

python - pyqtgraph 与 Qt 设计器 : how to add PlotItems to GraphicsLayoutWidget