【问题标题】:Return values from one dictionary by comparing keys from another dictionary通过比较另一字典中的键从一个字典返回值
【发布时间】:2020-10-06 19:30:32
【问题描述】:

我有两个字典,我想获取第一个字典的值作为第二个字典的键。两个字典都有相同的键,但顺序不同。 例如:

dict1={'a':1,'b':1,'c':0,'d':0,'e':1,'f':0,'g':1}

这是第一本词典。第二个字典是:

dict2={'c':3,'b':2,'a':1,'d':1,'e':0,'g':0,'f':0}

我想获取与第一个字典对应的值,但按照第二个字典的键顺序。 所以输出应该是这样的:

dict3={'c':0,'b':1,'a':1,'d':0,'e':1,'g':1,'f':0}

有什么办法吗?

【问题讨论】:

  • 为什么要对字典进行排序?

标签: python python-3.x dictionary


【解决方案1】:

如果你有 Python 3.7+,你可以使用这个:

dict1={'a':1,'b':1,'c':0,'d':0,'e':1,'f':0,'g':1}
dict2={'c':3,'b':2,'a':1,'d':1,'e':0,'g':0,'f':0}

dict3 = {k: dict1[k] for k in dict2.keys()}
print(dict3)

> {'c': 0, 'b': 1, 'a': 1, 'd': 0, 'e': 1, 'g': 1, 'f': 0}

What’s New In Python 3.7

dict 对象的插入顺序保存特性已被宣布为 Python 语言规范的官方部分。

【讨论】:

  • 谢谢。这完美地工作。我在找这个。
【解决方案2】:

这是你的意思吗?

dict3 = {key:dict1[key] for key in dict2.keys()}

在 python 3.9 上试过。

【讨论】:

  • 谢谢。是的,这正是我的意思。
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 2017-07-06
相关资源
最近更新 更多