3 python arrays dictionary filter
我有一本字典,其值如下:
dictionary = {(10,9): 1, (44,11): 2, (1,1): 99}
Run Code Online (Sandbox Code Playgroud)
基本上我的键是整数对,每个键的值都只是整数。
我有一个存储一组键的数组:
array = [(1,1), (5,19), (58,7)]
Run Code Online (Sandbox Code Playgroud)
我想过滤我的字典,使其仅包含存储在数组中的键的元素。就我而言,过滤字典后,我将获得以下内容:
dictionary = {(1,1): 99}
Run Code Online (Sandbox Code Playgroud)
因为存储在数组中的字典的唯一键是 (1,1)
什么是最有效的方法?
您可以执行以下操作:
dictionary = {(10,9): 1, (44,11): 2, (1,1): 99}
array = [(1,1), (5,19), (58,7)]
result = { k:v for k, v in dictionary.items() if k in array}
Run Code Online (Sandbox Code Playgroud)
输出量
{(1, 1): 99}
Run Code Online (Sandbox Code Playgroud)
甚至更快,将列表转换为集合:
s = set(array)
result = {k: v for k, v in dictionary.items() if k in s}
Run Code Online (Sandbox Code Playgroud)