![](/img/trans.png)
[英]Compare two dictionaries and add the identified key and difference in value to a new dict
[英]Creating New dictionary from two dictionaries with Key as First dict's Value, and Value as the second dict's Value
例子:
A = {1: "IWillBeAKeySoon", 7: "IHope"}
B = {1: "ItSeemsIAmAValue",6: "LostVal"}
我想將 A 和 B 結合起來得到一個 dict C ,它看起來像這樣:
C = {"IWillBeAKeySoon": "ItSeemsIAmAValue"}
我已經手動完成了:
C={A[key]:value for key,value in B.items() if key in A}
我認為應該有一些內置功能或更有效的方法來做到這一點,但我找不到。
您可以使用zip :
>>> A = {1: "IWillBeAKeySoon", 6: "MeToo"}
>>> B = {1: "ItSeemsIAmAValue",6: "Val"}
>>> C = dict(zip(A.values(), B.values()))
>>> print(c)
{'MeToo': 'Val', 'IWillBeAKeySoon': 'ItSeemsIAmAValue'}
關於性能, dict(zip(...)))
似乎是最快的:
import timeit
A = {x: '%s%12d' % ('a', x) for x in range(100)}
B = {x: '%s%12d' % ('b', x) for x in range(100)}
def v1():
C={A[key]:value for key,value in B.items() if key in B}
def v2():
C = dict(zip(A.values(), B.values()))
def v3():
C = {x[0]: x[1] for x in zip(A.values(), B.values())}
print(timeit.timeit(v1))
print(timeit.timeit(v2))
print(timeit.timeit(v3))
18.561055098
9.385801745000002
17.763003313
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.