给出一个清单['a','b','c','d','e','f'].没有.要进行分割2 ..所以在第一个字符串中我想要取列表中的0,2,4个元素,然后将它们连接起来,用空格分隔符和第1,3,5个元素的第二个字符串分隔.输出需要采用的形式k = ["a c e", "b d f"]
实际的程序是接受一个字符串(例如{球,蝙蝠,娃娃,巧克力,蝙蝠,风筝}),也接受那些拿这些礼物的孩子的数量输入(例如2),然后将它们分开第一个小孩得到礼物,走到后面,第二个小孩拿着礼物,站在后面,这样所有孩子都会拿礼物.如果礼物仍然存在,那么第一个孩子再次获得礼物并且循环继续....上面的期望输出例如:{"球娃娃蝙蝠","蝙蝠巧克力风筝"}
lst = ['a','b','c','d','e','f']
k = [" ".join(lst[::2]), " ".join(lst[1::2])]
Run Code Online (Sandbox Code Playgroud)
输出:
['a c e', 'b d f']
Run Code Online (Sandbox Code Playgroud)
更通用的解决方案
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)
Run Code Online (Sandbox Code Playgroud)
输出:
['a d', 'b e', 'c f']
Run Code Online (Sandbox Code Playgroud)
以下是为任意数量的组执行此操作的一般方法:
def merge(lst, ngroups):
return [' '.join(lst[start::ngroups]) for start in xrange(ngroups)]
Run Code Online (Sandbox Code Playgroud)
以下是它的使用方法:
>>> 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']
Run Code Online (Sandbox Code Playgroud)