可能重複:
Iterate a list as pair (current, next) in Python如何分組名單到包容順序n元組
我有一個這樣的名單:
list = [A, B, C, D, E, F, G]
我怎麼能集團這將得到以下Python輸出
[(A,B), (B,C), (C, D), (D,E), (E,F), (F,G)]
所以值由謝勝利值分組,但爲了保留...
可能重複:
Iterate a list as pair (current, next) in Python如何分組名單到包容順序n元組
我有一個這樣的名單:
list = [A, B, C, D, E, F, G]
我怎麼能集團這將得到以下Python輸出
[(A,B), (B,C), (C, D), (D,E), (E,F), (F,G)]
所以值由謝勝利值分組,但爲了保留...
嘗試使用zip()
:
zip(lst, lst[1:])
此外,您不應該使用名稱list
,因爲您將覆蓋內置列表類型。
例子:
>>> lst = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
>>> zip(lst, lst[1:])
[('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E'), ('E', 'F'), ('F', 'G')]
對於一個版本將與發電機或其他一個通iterables工作,你可以使用pairwise recipe from the itertools docs:
from itertools import tee, izip
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)
使用列表理解,從0到迭代長度 - 1
print [(a[i],a[i+1]) for i in range(len(a)-1)]
,甚至更好,只是使用ZIP
print zip (a,a[1:])
>>> a = [1,2,3,4,5]
>>> zip(a, a[1:])
<zip object at 0x7fe6e905ab90>
>>> list(zip(a, a[1:]))
[(1, 2), (2, 3), (3, 4), (4, 5)]
這是我認爲最好的方式。 – arshajii
這是怎麼樣比其他2好? ....是一樣的...(+1都是相同的,它是正確的答案) –