Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何忽略范围循环中的重复值_Python_Python 3.x - Fatal编程技术网

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)