0

与えられたリスト['a','b','c','d','e','f']。2 ..したがって、最初の文字列では、リストの0,2,4要素を取得し、スペース区切り文字で区切られた2番目の文字列の1,3,5要素と連結します。出力は次の形式である必要がありますk = ["a c e", "b d f"]

実際のプログラムは、文字列({ball、bat、doll、choclate、bat、kite}など)を受け取り、それらの贈り物を受け取った子供の数(2など)の入力も取り込んでから、それらを分割することです。最初の子供が贈り物を受け取り、列の後ろに行き、2番目の子供が贈り物を受け取り、後ろに立つと、すべての子供が贈り物を受け取ります。贈り物が残っている場合、最初の子供は再び贈り物を受け取り、サイクルが続きます....上記の望ましい出力例:{"ball doll bat"、 "bat choclate kite"}

4

2 に答える 2

6
lst = ['a','b','c','d','e','f']

k = [" ".join(lst[::2]), " ".join(lst[1::2])]

出力:

['a c e', 'b d f']

より一般的な解決策:

def group(lst, n):
    return [" ".join(lst[i::n]) for i in xrange(n)]

lst = ['a','b','c','d','e','f']
print group(lst, 3)

出力:

['a d', 'b e', 'c f']
于 2012-05-19T13:46:22.500 に答える
6

これを任意の数のグループに対して行う一般的な方法は次のとおりです。

def merge(lst, ngroups):
    return [' '.join(lst[start::ngroups]) for start in xrange(ngroups)]

使用方法は次のとおりです。

>>> lst = ['a','b','c','d','e','f']
>>> merge(lst, 2)
['a c e', 'b d f']

>>> merge(lst, 3)
['a d', 'b e', 'c f']
于 2012-05-19T13:51:19.490 に答える