【问题标题】:Compare two dictionaries for matches比较两个字典的匹配项
【发布时间】:2015-08-04 20:43:23
【问题描述】:

不知道为什么这个 for 循环只打印字典的 我想在两个字典之间进行比较并打印两者中的匹配键。应该通过键来完成匹配。在这种情况下,键是 CAS 编号,例如71751412, Abamectin

# create the dictionaries
with open(r'C:\CAS-S.csv') as f:
d = dict(filter(None, csv.reader(f)))
print(d)

with open(r'C:\CAS-B.csv') as f:
g = dict(filter(None, csv.reader(f)))
print(g)

#match keys
for key in d:
  if key in g:
     print (d[key])

【问题讨论】:

  • 输入数据是什么,预期结果是什么?
  • 你不确定它为什么返回values,但是你想要值?如果唯一的问题是它只打印一个字典的值并且您想要两个字典中的值,那么打印它们:print(d[key], g[key])
  • 那个循环不返回任何东西,它打印一些东西。它会打印 values,因为您专门打印的是 value,而不是 key。
  • 错字对不起@Tigerhawk
  • 该条目是否匹配,因为键相同,值相同,或两者兼而有之?

标签: python csv dictionary


【解决方案1】:

最简单的解决方案:

# match keys
for key in d:
  if key in g:
     print ('{}: {}'.format(key, d[key]))

【讨论】:

  • 很简单。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多