我試圖在同一時間進行迭代2個dict
小號知道他們有一些關鍵的共同點(肯定的),但他們中的一些不(可能是我們的目標)。更多相同的鍵可以(很少,但仍然)以不同的順序排列。另一個問題是,dict
可以有不同的長度。在我的情況下,鍵都是數字。
Atempted解決方案
例dict
S:
di1 = {1: "a", 2: "b", 3: "c", 5:"e"}
di2 = {1: "a", 2: "b", 4: "d", 5:"e", 6:"f"}
讀了一些答案,遍歷多個dict
年代後我試圖zip()
荷蘭國際集團兩個dict
S:
for i, j in zip(di1, di2): print(i, j)
1 1
2 2
3 4
5 5
但這'削減'更長的dict
,也是這個遍歷每個dict
的按鍵seperately,而不是讓他們保持一致(總i == j
,即使i in di1 and j in di2
將返回False
)
鑑於在我的情況下,所有按鍵都數字我試過如下:
for i in range(max(max(di1), max(di2))+1): print(i)
0
1
2
3
4
5
6
其中工程(我可以通過i
爲dict
關鍵),但:
- 不重複
dict
每人S SE,只是生成號碼嘗試匹配給定dict
s。 - 即使在
dict
s(i in di1 or i in di2
是False
)中都不存在密鑰,它們也會對值進行迭代。 - 這隻有在鍵是數字時纔有效。
- 似乎不太pythonic。
的quesstion
如何迭代因爲它是足夠的關鍵,其中至少有一個存在兩個(或更多)dict
S(鑰匙)?
條件下,使用標準庫
- 解是優選的。
- 您可以假設
dict
鍵是數字,但更通用的解決方案是可取的。 - 迭代次序並不重要,但有關此事的其他信息是獎金。
- 我正在迭代兩個
dict
s。 dict
s應保持不變。- 我正在使用python 3.6。1
如果每個字典中重複鍵的_value_值不同,該怎麼辦? – mhawke