gpt4 book ai didi

python - 键/值对的两个字典列表的交集

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:57 25 4
gpt4 key购买 nike

我有两个字典列表,格式如下:

systolic_sex = [
{'attribute': u'bp', 'value_d': 133.0, 'value_s': u'133', 'sid': 6},
{'attribute': u'bp', 'value_d': 127.0, 'value_s': u'127', 'sid': 17},
{'attribute': u'bp', 'value_d': 121.0, 'value_s': u'121', 'sid': 18},
{'attribute': u'bp', 'value_d': 127.0, 'value_s': u'127', 'sid': 27},
{'attribute': u'bp', 'value_d': 120.0, 'value_s': u'120', 'sid': 42},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 6},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 17},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 18},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 27},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 42}
]



sex = [
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 6},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 17},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 42}
]

我想通过键“sid”的值来匹配这些列表,这样如果两者中的“sid”值相同,我就有一个匹配项,否则,我没有。如果我有一个匹配项,我就会将两个集合中的匹配字典附加到一个新列表中,就像这样

new_set = [
{'attribute': u'bp', 'value_d': 133.0, 'value_s': u'133', 'sid': 6},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 6},
{'attribute': u'bp', 'value_d': 127.0, 'value_s': u'127', 'sid': 17},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 17},
{'attribute': u'bp', 'value_d': 120.0, 'value_s': u'120', 'sid': 42},
{'attribute': u'SEX', 'value_d': 0.0, 'value_s': u'M', 'sid': 42}
]

我已经尝试过各种交叉方法,包括修改来自 Match set of dictionaries 的答案, 但我希望创建一个新的具有匹配 sid 的字典列表,而不是替换两个列表之间的值。

最佳答案

您可能对使用 pandas 感兴趣如果您经常处理这样的数据。你的词典已经是 pandas 喜欢的形式,所以你可以这样做:

import pandas

systolic_sex = pandas.DataFrame(systolic_sex)
sex = pandas.DataFrame(sex)

matches = systolic_sex[systolic_sex.sid.isin(sex.sid)]

如果您希望数据以与您提供的格式相同的格式返回,您可以

output = matches.to_dict(orient='records')

关于python - 键/值对的两个字典列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33325859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com