我有两个列表,第一个列表一定比第二个多一项。我想知道创建一个新列表的最Pythonic方法,其中偶数索引值来自第一个列表,奇数索引值来自第二个列表。
# example inputs
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
# desired output
['f', 'hello', 'o', 'world', 'o']
这个可以运行,但不太美观:list3 = []
while True:
try:
list3.append(list1.pop(0))
list3.append(list2.pop(0))
except IndexError:
break
如何以其它方式实现?什么是最Pythonic的方法?如果你需要处理长度不匹配的列表(例如第二个列表比第一个长,或者第一个比第二个多一个元素以上),一些解决方案在这里将起作用,而其他解决方案则需要进行调整。有关更具体的答案,请参见如何交错两个不同长度的列表并将多余的元素留在末尾?,或如何优雅地交错两个长度不均匀的列表?以尝试均匀插入元素,或在每个第N个元素之后向Python列表中插入元素来处理每个“添加”元素之前应该出现特定数量的元素的情况。