python中的双循环

时间:2014-07-28 06:55:08

标签: python-2.7

我尝试用pythonic编程。我有下一个案例 - 一些数组,我想要彼此迭代哪些元素......目前我编写了下一个例子:

a = ['a','b','c','d','e','f']

for posx in range(len(a)):
    for posy in range(posx+1, len(a)):
                *some operation for these elements*

现在我想问一下Pyhton用户的一些经验,我怎样才能减少这些'forlo慢?可以在这里使用zip工具吗?我怎么理解,zip只是将两个不同列表(或数组)中相同位置的两个元素连接起来。我想迭代一个列表而不是另一个列表并返回两个列表中每个元素的操作。

非常感谢

1 个答案:

答案 0 :(得分:3)

标准库中提供了itertools.combinations

import itertools

for elem1, elem2 in itertools.combinations(a, 2):
    do_whatever_with(elem1, elem2)