2

次のデータ構造が与えられた場合、交差を見つける最も効率的な方法は何ですか?これは両方のデータ構造に共通のキーです。

dict1 = {'2A':'....','3A':'....','4B':.....}  
list1 = [......,'2A','4B'.....]

Expected output = ['2A','4B']

リスト(dict1ではない)を他のデータ構造に編成しても、出力が高速になる場合は問題ありません。このルックアップは、多数のディクテーションに対して 2 回実行されるため、速度が重要です。

4

2 に答える 2

8

As suggested by @Blckknght

>>> dict1.viewkeys() & list1
set(['4B', '2A'])

This has to be the fastest and most efficient way. Note that dict.viewkeys() is dict.keys in Python 3 (don't confuse this with Python 2 where dict.keys() returns a list instead)

于 2013-05-16T01:16:42.080 に答える
2

セットを使用します。

>>> set(dict1.keys()) & set(list1)
于 2013-05-16T01:15:59.670 に答える