我有2个列表:(列表1,列表2),我需要将这些列表合并到另一个包含list1list2的列表中,顺序是:


listNew = [list1(i),list2(i),list1(i + 1),list2(i + 1),...]


我尝试了这个:

listNew = list1 + list2
for i in listNew:
    listNew.append(i)
    hranyNew.append(pocetHran/2+i)


但出现错误:


  +不支持的操作数类型:“ int”和“ str”


还有另一个问题,如何将listNew[i]listNew[i+1]listNew[i+2]listNew[i+3]进行比较?

换句话说,我需要将所有相邻对与pair+12等进行比较。
谢谢!

最佳答案

我想指出非常方便的itertools.chain()

from itertools import chain

list1 = ['1','2','3']
list2 = ['a','b','c']

listNew = list(chain.from_iterable(zip(list1, list2)))
# listNew = ['1', 'a', '2', 'b', '3', 'c']


您还可以将list comprehension与双循环一起使用:

listNew = [y for x in zip(list1, list2) for y in x]
# listNew = ['1', 'a', '2', 'b', '3', 'c']


如果要连接listNew中的成对元素,那就很简单:

listNew_ = [x + y for x, y in zip(list1, list2)]
# listNew_ = ['1a', '2b', '3c']

10-05 22:08