如何将此代码优化为一个循环或尽可能最小化

时间:2017-10-06 08:30:14

标签: python optimization

如果可能,我需要将此代码限制为最多一个循环或更少:

for i in range(1,count+1):

  for j in range(i+1,count+1):

     newcount+=1

基本上它的作用是找到没有重复的可能组合。

2 个答案:

答案 0 :(得分:3)

1count - 1之间看起来像triangular number

count * (count - 1) // 2

这是一个小测试:

count = 10
newcount = 0

for i in range(1,count+1):
  for j in range(i+1,count+1):
     newcount+=1

print(newcount)
# 45
print(newcount == count * (count - 1) // 2)
# True

答案 1 :(得分:0)

我建议itertools.combinations

在您的情况下,您可以通过itertools.combinations(xrange(1, count+1), 2)

进行迭代