以最快的方式比较两个口述清单

2024-03-28 12:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个单子,每个单子上有500条口述:

list_1 = [{id:'1',...}, {id:'2',...}]
list_2 = [{id:'1',...}, {id:'2',...}]

I need to compare both lists on the id basis. (id's are same, one is greater than another).

比较和返回差异最有效的方法是什么

我们是否也可以对执行比较的函数使用yield来逐个返回结果


Tags: thetoidonbasisneedoneare
1条回答
网友
1楼 · 发布于 2024-03-28 12:13:04
>>> list_1 = [{'unique_id':'001', 'key1':'AAA', 'key2':'BBB', 'key3':'EEE'}, 
              {'unique_id':'002', 'key1':'AAA', 'key2':'CCC', 'key3':'FFF'}]
>>> list_2 = [{'unique_id':'001', 'key1':'AAA', 'key2':'DDD', 'key3':'EEE'},
              {'unique_id':'002', 'key1':'AAA', 'key2':'CCC', 'key3':'FFF'}]
>>> pairs = zip(list_1, list_2)
>>> any(x != y for x, y in pairs)
True

或者得到不同的一对:

>>> [(x, y) for x, y in pairs if x != y]

您甚至可以获得与每对不匹配的密钥:

>>> [[k for k in x if x[k] != y[k]] for x, y in pairs if x != y]

可能与相关值一起:

>>> [[(k, x[k], y[k]) for k in x if x[k] != y[k]] for x, y in pairs if x != y]

相关问题 更多 >