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]]
        ...
posted on 2016-09-30 21:31  未雨愁眸  阅读(220)  评论(0编辑  收藏  举报