如果我有几个列表
我能够将列表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循环可以起作用。
有没有人对如何编程有更好的想法?
答案 0 :(得分:6)
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']