我想把每一对的乘积值收集到一个数字列表中。
这适用于较小的数字,但不适用于较大的数字。如何优化我的解决方案?
#will work fine with min = 10 & max = 99
#but not with these values under
min = 1000
max = 9999
seq = range(min, max + 1)
products = set()
for i in seq:
for j in seq:
p = i * j
products.add(p)
3条答案
按热度按时间pgky5nke1#
你可以用numpy取外积,然后取唯一值。
mum43rcc2#
您可以使用解析直接构建一个集合。要进行优化,只需通过将数字与后续数字及其自身相乘来计算每个乘积一次,而不是每对反转数字(这只会浪费时间生成重复值):
8tntrjer3#
嵌套列表理解应该更快: