【发布时间】:2012-11-25 04:02:07
【问题描述】:
我有两组数字,每组都在我的 Python 脚本中的一个列表中。对于第一个列表中的每个数字,我需要查看第二个列表中是否有任何数字大于它。我只需要 n2 大于 n1 的次数。 (例如,如果numset1 是[7,2] 而numset2 是[6,9],我只需要3)
现在我正在这样做 - 遍历每个 n1 并检查每个 n2 是否大于它:
possibilities = [(n1<n2) for n1 in numset1 for n2 in numset2]
numPossibilities = sum(possibilities)
目前这是我脚本中最慢的部分,尤其是在处理较大的数据集(包含数千个数字的 numset1 和 numset2)时。我确信有一些方法可以提高效率,我只是不确定如何。
【问题讨论】:
-
如何排序一个列表并使用
bisect模块? -
呃,我发誓在我发布答案之前我没有看到你的评论!如果你想发布你的,我会删除我的:)
-
我也没有看到你的答案:)
标签: python performance loops