我真的很惊讶我无法在任何地方找到它。 在大多数语言中,遍历列表中的所有可能对看起来像这样:
for (i = 0; i < length; i++)
for (j = i + 1; j < length; j++)
do stuff
但是在python中,你必须这样做:
for i in range (len(clusters)):
for j in range (i+1, len(clusters)):
do stuff
我觉得这不是非常pythonic。最好的方法是什么?
答案 0 :(得分:4)
您可以使用combinations():
from itertools import combinations
combinations('ABCD', 2) --> AB AC AD BC BD CD
Python不鼓励&#34; C风格&#34;循环,因为如果你适应它,你实际上几乎不需要它们。您可以使用emumerate()
轻松地使用纯python来获取索引和一些切片:
lst = 'ABCD'
for index, first in enumerate(lst):
for second in lst[index+1:]:
print(first, second)