我有两个相似的长度列表ids
,descriptions
,两者都只包含字符串。
我有special_ids
这也是一个列表,其中包含ids
我尝试了两种不同的方法
# 1
filtered = {k:v for k,v in zip(ids, descriptions) if k in special_ids}
# 2
filtered = {k:v for k,v in zip(ids, descriptions)}
filtered = {k: v for k,v in filtered if k in special_ids}
第二个更快。我在len(ids)
为370k~而len(special_ids)
为1.2k~
为什么第二个运行速度要快得多?
旁注:
在实际问题中,ids
的元素是编码字符串的一个元素列表,所以实际上我在每个解决方案中解压缩它们就像k[0].decode() for k in ids
一样,我认为不重要但是