【发布时间】:2017-12-17 18:00:45
【问题描述】:
我创建了一个数字从 0 到 131072 的列表:
x = [i for i in range(131072)]
然后是所有对,除了相同数字的对:
pairs = []
append_pairs = pairs.append
for i in range(len(x)):
for j in range(len(x)):
if x[i]!=x[j]:
x2 = [x[i], x[j]]
append_pairs(x2)
给出:
pairs = [[0, 1], [0, 2], [0, 3], ... [131071, 131070]]
但是在这种语法中,它需要很长时间。能不能快一点?
【问题讨论】:
-
从一组元素生成所有对的下限时间复杂度为 O(n^2),其中 n 是元素的数量。这个下限意味着我们永远不会比 O(n^2) 更快。
标签: python python-3.x list combinations