通过替换元素[重复]将列表分成2个列表

问题描述 投票:0回答:1

我想将一个列表分为2个列表,将原始列表中的元素交替放入新列表中。这是一个带有预期输出的简单示例。

l = ['a', 'b', 'c', 'd', 'e', 'f']

=> 
['a', 'c', 'e']
['b', 'd', 'f']

我希望在itertools中找到一个解决方案,但是找不到合适的解决方案。我在这里也找不到任何解决方案。最终,我采用了以下解决方案。它足够好,简短/可读,但效率不高(两次迭代原始列表,并使用索引代替迭代器)。

l1 = [l[i] for i in range(0, len(l), 2)]
l2 = [l[i] for i in range(1, len(l), 2)]

现在我很好奇。是否存在既简短又有效的通用解决方案?

python itertools
1个回答
1
投票

您可以使用语法l[start:stop:increment]分割列表。因此,在您的情况下为l[::2]l[1::2]。如果将参数保留为空白,则默认值分别为0len(l)1

© www.soinside.com 2019 - 2024. All rights reserved.