我有两个不同的查询集,我需要合并在一起,然后删除任何重复的ID。有超过一百万张唱片。你知道吗
list_a = Wharehouse.orders.all().values_list('id', flat=True)
list_b = Shops.orders.all().values_list('id', flat=True)
有没有快速的Python方法?你知道吗
我可以考虑使用列表理解和循环每个值。但是,这可以在numpy中更好/更快地完成,或者是一套?输出只需要是一个ID列表。你知道吗
我使用的是安装了numpy1.11.0pip的python3.4和Django。你知道吗
假设
list_a
和list_b
是整数列表,您可以使用np.union1d(list_a, list_b)
。使用:下面是一个基准测试,它表明^{} 在应用于包含大约一百万个元素的列表时可能会更快:
当然,请注意,
np.union1d
返回一个NumPy数组,而set
和list
返回同名类型的Python对象,因此基准测试在某种程度上是一个苹果到橙色的比较。你知道吗一种方法是使用^{}.
我们创建了2个集合
set_a
和set_b
。set_a
包含Wharehouse
对象的所有ID。set_b
包含所有Shops
ID。现在要合并所有唯一的id,我们对集合使用union
操作。final_set
包含所有所需的唯一ID。你知道吗尝试将其强制转换为
set
以删除重复项。然后可以将其返回到列表中。要串联列表,请使用+
运算符。它可以做到这一点(至少在普通列表中)相关问题 更多 >
编程相关推荐