Python - 与字典和列表相交

时间:2013-05-16 01:13:44

标签: python

鉴于以下数据结构,找出交叉点的最有效方法是什么 - 这两个数据结构都是通用的。

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

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

我可以将列表(不是dict1)组织到任何其他数据结构中,如果它也产生更快的输出。 由于这个查找有2个可用于大量的决策 - 速度至关重要。

2 个答案:

答案 0 :(得分:8)

正如@Blckknght所建议的

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

是最快速,最有效的方法。请注意,Python 3中的dict.viewkeys()dict.keys(不要将此与Python 2混淆,其中dict.keys()会返回list

答案 1 :(得分:2)

使用套装。

>>> set(dict1.keys()) & set(list1)