我从以下输入开始:
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
答案 0 :(得分:3)
这应该起作用,只需将第二个循环缩短一点,以使第一个数字始终大于或等于第二个:
{
"repository": {
"issue": {
"timelineItems": {
"nodes": [
{
"__typename": "ConvertedNoteToIssueEvent"
},
{
"__typename": "AssignedEvent"
},
{
"__typename": "LabeledEvent"
},
{
"__typename": "MovedColumnsInProjectEvent"
}
]
}
}
}
}
答案 1 :(得分:0)
生成这类非重复坐标的另一种方法是使用itertools.combinations_with_replacement
。例如:
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)