可能重複:
How do you split a list into evenly sized chunks in Python?如何拆分成對元素上的列表?
讓我們有一個列表,總是有偶數個元素。我們必須通過配對來分解它。 實施例: 列表[ '1', '2', '3', '4'] 需要 1,2-和3,4-
可能重複:
How do you split a list into evenly sized chunks in Python?如何拆分成對元素上的列表?
讓我們有一個列表,總是有偶數個元素。我們必須通過配對來分解它。 實施例: 列表[ '1', '2', '3', '4'] 需要 1,2-和3,4-
如果希望列表兩個半區。
l = [1,2,3,4]
print l[:len(l)/2], l[len(l)/2:]
>>> [1, 2] [3, 4]
如果要通過對分割清單,然後你的問題是確切duplicate。
您可以使用這樣的事情太:
lVals = xrange(1,101)
size = len(lVals)
output = ((lVals[i], lVals[i+1] if size > i+1 else None) for i in xrange(0, size, 2))
我不認爲這個工程,嘗試一下! – juanchopanza 2011-06-15 13:19:32
@juanchopanza我已經嘗試了幾次,它適用於我 - 如果使用'res = list(output)',你會得到一個元組列表,例如:res [2] ==(3,4) – 2011-06-15 13:31:27
它給出1,2),(2,3),(3,4)等,而不是(1,2),(3,4),(5,6)。你需要output =((lVals [i],lVals [i + 1] if size> i + 1 else None)for xrange(0,size,2)) – juanchopanza 2011-06-15 13:34:09
摘自:How do you split a list into evenly sized chunks?
from itertools import izip_longest
data = range(6)
data_iters = [iter(data)] * 2
pairs = izip_longest(*data_iters)
[pair for pair in pairs]
>>> [(0, 1), (2, 3), (4, 5)]
巧妙的部分是,data_iters的兩個元素指的是同一個對象。 Izip_longest從作爲參數傳遞的兩個迭代器中交替使用,但由於它們引用的是同一個對象,因此它有效地將迭代器中的元素配對。
因爲在這裏很聰明,我不信譽,如果你喜歡我的回答,請提出我鏈接到的評論。 :)
>>> L = [1, 2, 3, 4]
>>> pairs = zip(L[::2], L[1::2])
>>> print pairs
[(1, 2), (3, 4)]
希望這有助於
並且如果有多個元件[1,2,3,4,5,6,7,8,9,10]? =)) – Denis 2011-06-15 13:13:39