Python3字典过滤,为什么一种方法比另一种更快?

时间:2018-04-26 06:44:37

标签: python dictionary

我有两个相似的长度列表idsdescriptions,两者都只包含字符串。 我有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一样,我认为不重要但是

0 个答案:

没有答案