在python中交替迭代两个列表

在python中交替迭代两个列表,python,loops,Python,Loops,假设我有这样一个列表: rows=[['a1','a3','a5','a7'], ['a2','a4','a6','a8']] 我想从这个列表中创建一个新的列表,它看起来像这样: ['a'、'1'、'a'、'2'、'a'、'3'…]依此顺序一直到'a8',但我不想对列表进行任何排序 我的观点是,我希望以这样一种方式附加值:它附加行中第一个列表中的第一项,然后再附加第一项 从第二个列表返回,然后返回到第一个列表的第二项,依此类推 我该怎么做 将列表理解与嵌套迭代一起使用: merged = [r

假设我有这样一个列表:

rows=[['a1','a3','a5','a7'], ['a2','a4','a6','a8']]
我想从这个列表中创建一个新的列表,它看起来像这样:
['a'、'1'、'a'、'2'、'a'、'3'…]
依此顺序一直到'a8',但我不想对列表进行任何排序

我的观点是,我希望以这样一种方式附加值:它附加行中第一个列表中的第一项,然后再附加第一项 从第二个列表返回,然后返回到第一个列表的第二项,依此类推


我该怎么做

将列表理解与嵌套迭代一起使用:

merged = [rows[i][j] for j in len(rows) for i in len(rows[0]]

从这里开始,我希望您可以将两个字符列表重新转换为所需的字符序列。

使用列表理解和嵌套迭代:

merged = [rows[i][j] for j in len(rows) for i in len(rows[0]]
从这里开始,我希望您可以将两个字符的列表重新转换为所需的字符序列。

您可以使用,然后使用列表中的嵌套for连接并展开项目:

>>> [x for i, j in zip(*rows) for x in i+j]
['a', '1', 'a', '2', 'a', '3', 'a', '4', 'a', '5', 'a', '6', 'a', '7', 'a', '8']
如果在元组中收集
zip
中的所有项目,然后使用
str.join
,则可以处理具有不同数量子列表的列表:

>>> [x for i in zip(*rows) for x in ''.join(i)]
['a', '1', 'a', '2', 'a', '3', 'a', '4', 'a', '5', 'a', '6', 'a', '7', 'a', '8']
您可以使用,然后使用列表中的嵌套对象连接和展开项目:

>>> [x for i, j in zip(*rows) for x in i+j]
['a', '1', 'a', '2', 'a', '3', 'a', '4', 'a', '5', 'a', '6', 'a', '7', 'a', '8']
如果在元组中收集
zip
中的所有项目,然后使用
str.join
,则可以处理具有不同数量子列表的列表:

>>> [x for i in zip(*rows) for x in ''.join(i)]
['a', '1', 'a', '2', 'a', '3', 'a', '4', 'a', '5', 'a', '6', 'a', '7', 'a', '8']

我认为你的解释表明你想要['a1','a2','a3','a4'…]作为结果,但你的例子是不同的。。。你想要实现什么?我认为你的解释表明你想要['a1'、'a2'、'a3'、'a4'…]作为结果,但你的例子不同。。。你想要实现什么?