def pair(lis):
n = len(lis)
for i in range(n):
for j in range(i+1, n):
yield lis[i], lis[j]
這樣在調用端,訪問這些可迭代對象時,使用一個一層循環即可(也即 pair
實現了對二層循環的順式訪問):
matrix = [
['A', 'A', 'A', 'A', 'A', 'A'],
['B', 'C', 'D', 'E', 'F', 'G']
]
for line_a, line_b in pair(matrix):
for i, j in range(len(line_a)):
shape = [line_a[i], line_a[j], line_b[i], line_b[j]]
...