0

给定一个列表['a','b','c','d','e','f']。没有。要进行的划分 2 .. 所以在第一个字符串中,我想取列表的 0,2,4 个元素,然后将它们用空格分隔符与第二个 1,3,5 个元素的字符串分隔。输出需要采用以下形式k = ["a c e", "b d f"]

实际的程序是输入一个字符串(例如 {ball,bat,doll,choclate,bat,kite}),同时输入接受这些礼物的孩子的数量(例如 2),然后将它们除以第一个孩子拿到礼物,走到最后,第二个孩子拿到礼物,站在后面,这样所有的孩子都接受礼物。如果礼物仍然存在,那么第一个孩子再次接受礼物并继续循环......上述所需的输出例如:{“ball doll bat”,“bat choclate kite”}

4

2 回答 2

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 回答
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 回答