1

与えられたリスト

[1,2,3,4,5,6]

2n要素で

リストを取得するにはどうすればよいですか

[1+2,3+4,5+6]

n要素で?

4

3 に答える 3

2

itertoolsレシピセクションから:

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))
于 2012-12-01T13:49:52.543 に答える
2
a = [1,2,3,4,5,6]
b = [a[i]+a[i+1] for i in xrange(0,len(a),2)]
于 2012-12-01T13:51:42.840 に答える
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]
于 2012-12-01T13:56:36.457 に答える