Python 如何忽略范围循环中的重复值
我从以下输入开始:Python 如何忽略范围循环中的重复值,python,python-3.x,Python,Python 3.x,我从以下输入开始: for i in range(3): for j in range(3): print(i,j) 我得到这个输出: 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 我如何设计For循环,使我不会得到反向重复的“坐标”,如(0,1)和(1,0)或(1,2)和(2,1) 我希望嵌套For循环的输出是: 0 0 0 1 0 2 1 1 1 2 2 2 这应该行得通,只需缩短第二个循环,使第一个数字始终大于或等于第二个: for i in r
for i in range(3):
for j in range(3):
print(i,j)
我得到这个输出:
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
我如何设计For循环,使我不会得到反向重复的“坐标”,如(0,1)和(1,0)或(1,2)和(2,1)
我希望嵌套For循环的输出是:
0 0
0 1
0 2
1 1
1 2
2 2
这应该行得通,只需缩短第二个循环,使第一个数字始终大于或等于第二个:
for i in range(3):
for j in range(i+1):
print(i,j)
生成此类非重复坐标的另一种方法是使用。例如:
from itertools import combinations_with_replacement
results = combinations_with_replacement(range(3), 2)
print(*results, sep='\n')
# (0, 0)
# (0, 1)
# (0, 2)
# (1, 1)
# (1, 2)
# (2, 2)