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]]
...