Python 比较列表中包含字典项的两个列表项
我有两份清单:Python 比较列表中包含字典项的两个列表项,python,Python,我有两份清单: a = [{'1':'value1'},{'2':'value2'}] b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}] 我想比较这两个列表,如果value1匹配,那么它将返回listb的所有键。我想要这样的结果: c= ['x','z'] a = [{'1':'value1'},{'2':'value2'}] b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}] c = [w.k
a = [{'1':'value1'},{'2':'value2'}]
b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}]
我想比较这两个列表,如果value1
匹配,那么它将返回listb
的所有键。我想要这样的结果:
c= ['x','z']
a = [{'1':'value1'},{'2':'value2'}]
b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}]
c = [w.keys()[0] for q in a for w in b if q.values()[0] == w.values()[0]]
print(c)
我的理解是:“从字典d
列表b
中返回所有键k
的列表,这样d
中的k
的值与列表a
中某个字典中某个键的值相同。”
您可以实现如下内容:
c= ['x','z']
a = [{'1':'value1'},{'2':'value2'}]
b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}]
c = [w.keys()[0] for q in a for w in b if q.values()[0] == w.values()[0]]
print(c)
输出:
['x', 'z']
这相当于:
a = [{'1':'value1'},{'2':'value2'}]
b = [{'x':'value1'},{'y':'hello'},{'z':'value1'}]
c = []
for q in a:
for w in b:
if q.values()[0] == w.values()[0]:
c.append(w.keys()[0])
print(c)
对于每个值,还是所有值?您的项目结构很奇怪,
a
和b
是否可以是多个项目的字典,而不是单个项目的字典列表?更好的实现!