Python - 与字典和列表相交

IUn*_*own 2 python

给定以下数据结构,找出交集的最有效方法是什么 - 这两个数据结构都是通用的.

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

Expected output = ['2A','4B']
Run Code Online (Sandbox Code Playgroud)

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

jam*_*lak 8

正如@Blckknght所建议的那样

>>> dict1.viewkeys() & list1
set(['4B', '2A'])
Run Code Online (Sandbox Code Playgroud)

必须是最快速,最有效的方式.请注意,这dict.viewkeys()dict.keys在Python 3中(不要将其与Python 2混淆,而是dict.keys()返回一个list)

  • 值得注意的是,在Python 3中,`viewkeys`已被重命名为`keys`(并且原来的`keys`方法不再存在).此外,使用`&`运算符:`dict1.viewkeys()&list1`可以更简洁 (2认同)