你是指通過numb
循環並打印任何鍵如果存在?
兩個選項;有一個循環:再次
for key in combo.viewkeys() & numb:
print combo[key]
的列表理解太:
for key in numb:
if key in combo:
print combo[key]
可太表示爲一個列表理解,產生一個列表:
[combo[key] for key in numb if key in combo]
或用dictionary views :
[combo[key] for key in combo.viewkeys() & numb]
演示:
>>> numb = [5, 7, 49, 11, 13]
>>> combo = {45 : (-1002,-1023), 49 : (-9999,-2347), 20 : (-1979, -1576), 13 : (-6000,-3450), 110 : (-2139, -8800), 7 : (-6754,-9087) }
>>> [combo[key] for key in numb if key in combo]
[(-6754, -9087), (-9999, -2347), (-6000, -3450)]
>>> [combo[key] for key in combo.viewkeys() & numb]
[(-9999, -2347), (-6000, -3450), (-6754, -9087)]
你採取什麼樣的路線取決於combo
和numb
大小,以及是否numb
可能是set
爲好。如果numb
可能是一個集合,則dict.viewkeys()
可以通過使用兩者中較小的一個來優化相交操作,並且很可能是更快的選項,尤其是對於較大的數據集。
@DavidRobinson:並非''numb'中的所有值都出現在'combo'中。 –
@MartijnPieters:啊,錯過了 –