与えられたリスト
[1,2,3,4,5,6]
2n
要素で
リストを取得するにはどうすればよいですか
[1+2,3+4,5+6]
n
要素で?
def grouper(n, iterable, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
次に、次のように呼び出します。
for paired in grouper(2, inputlist):
# paired is a tuple of two elements from the inputlist at a time.
grouper
イテレータを返します。リストが必要な場合は、反復可能オブジェクトを新しいリストに取り込むだけです。
newlist = list(grouper(2, inputlist))
a = [1,2,3,4,5,6]
b = [a[i]+a[i+1] for i in xrange(0,len(a),2)]
li = [1,2,10,20,100,200,2000,3000,2,2,3,3,5,5]
print li
it = iter(li)
if len(li)%2==0:
print [x+it.next() for x in it]
与える
[1, 2, 10, 20, 100, 200, 2000, 3000, 2, 2, 3, 3, 5, 5]
[3, 30, 300, 5000, 4, 6, 10]