gpt4 book ai didi

python - Dicts 比较列表以在列表之间进行匹配并检测 Python 中的值变化

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:44 25 4
gpt4 key购买 nike

我有一个从网络服务调用中返回的字典列表,

listA = [{'name':'foo', 'val':'x'}, 
{'name':'bar', 'val':'1'},
{'name':'alice','val':'2'}]

我需要比较之前调用服务的结果并提取更改。所以在下一个电话中我可能会接到:

listB = [{'name':'foo', 'val':'y'},
{'name':'bar', 'val':'1'},
{'name':'eve','val':'z'}]

不能保证顺序,也不能保证列表的长度。名称不会改变。实际数据还有几个键,但我只关心“val”。

我正在尝试找到一种方法来取回名称列表,这些名称的值在调用之间仅针对两个列表中的名称发生变化。

changed = ['foo'] # or [{'name':'foo'}]

最佳答案

我会构建一个辅助字典来更明智地存储 listA 的信息:

auxdict = dict((d['name'], d['val']) for d in listA)

那么任务就变得很简单了:

changed = [d['name'] for d in listB 
if d['name'] in auxdict and d['val'] != auxdict[d['name']]]

关于python - Dicts 比较列表以在列表之间进行匹配并检测 Python 中的值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412562/

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