8

重複の可能性:
Pythonでリストを均等なサイズのチャンクに分割するにはどうすればよいですか?
Pythonで2つのリストをマージしますか?

配列内の元のデータ:

a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']

必要な出力:

['1 2 3', '4 5 6', '7 8 9']

whileステートメントの使用は非効率的であることがわかっているので、これについては助けが必要です。

4

2 に答える 2

18
[' '.join(a[i:i+3]) for i in range(0, len(a), 3)]
于 2012-09-06T06:10:41.430 に答える
3

再利用!

from itertools import islice

def split_every(n, iterable):
    i = iter(iterable)
    piece = list(islice(i, n))
    while piece:
        yield piece
        piece = list(islice(i, n))

a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
new_a = [' '.join(slice) for slice in split_every(3, a)]

にこれを使用。

于 2012-09-06T06:11:10.047 に答える