Python 我试图写一个程序,将交错一个列表,其中包含一对列表?
我试图写一个程序,将交错一个列表,其中包含一对列表Python 我试图写一个程序,将交错一个列表,其中包含一对列表?,python,python-2.7,Python,Python 2.7,我试图写一个程序,将交错一个列表,其中包含一对列表 def interleave(lst): if lst==[]: return [] return lst.insert(lst[1][0],lst[0][1])+interleave(lst[1][1:]) 仔细想想——最后一行应该是: return [lst[0][0],lst[1][0]] + interleave([[lst[0][1:],lst[1][1:]]) 不清楚输入是什么,但我想你的意思是输
def interleave(lst):
if lst==[]:
return []
return lst.insert(lst[1][0],lst[0][1])+interleave(lst[1][1:])
仔细想想——最后一行应该是:
return [lst[0][0],lst[1][0]] + interleave([[lst[0][1:],lst[1][1:]])
不清楚输入是什么,但我想你的意思是输入类似于 [[1,2,3],[4,5,6] 产量为 [(4,1)、(5,2)、(6,3)] 为此:
def interleave(lst):
return zip(lst[1], lst[0])
您可以交换
lst[1]
和lst[0]的顺序
如果你想要相反的顺序。天哪,这一定是一个家庭作业。让我给你拿份副本。@Martijn很惊讶在这两种方法中都没有循环
itertools配方…@JonClements:不,我回答这些问题时没有想到循环
itertools配方。输入:>>>交错([[1,2,3],[4,5,6]))[1,4,2,5,3,6]我必须递归地编写它