鉴于以下数据结构,找出交叉点的最有效方法是什么 - 这两个数据结构都是通用的。
dict1 = {'2A':'....','3A':'....','4B':.....}
list1 = [......,'2A','4B'.....]
Expected output = ['2A','4B']
我可以将列表(不是dict1)组织到任何其他数据结构中,如果它也产生更快的输出。 由于这个查找有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)