如果我有几个列表
我能够将列表1与列表2结合起来,但是,我还没有成功地将其他列表组合起来.
def alternator(): iets = [] for i in range(len(list2)): something += [list1[i]] something +=[list2[i]] result = something result_weaver(result) def result(x): list31 = list3 if len(list3) < len(x) : while len(list31) != len(x): list31 += '-'
我决定添加' - '以确保两个列表的长度相等,因此for循环可以起作用.
有没有人对如何编程这个有更好的想法?
itertools.zip_longest()
在这里使用:
try: from itertools import zip_longest except ImportError: # Python 2 from itertools import izip_longest as zip_longest def alternate(list1, list2): return [v for v in sum(zip_longest(list1, list2), ()) if v is not None]
该zip_longest()
调用添加None
占位符(类似于您自己尝试添加-
字符),我们需要sum()
在压缩后再从输出中删除.
演示:
>>> alternate(list1, list2) ['1', '5', '2', '6', '3', '7', '8'] >>> alternate(alternate(list1, list2), list3) ['1', '9', '5', '2', '6', '3', '7', '8']