是否有一个函数可以从一个列表返回奇数值,从另一个列表返回偶数值,并互相替换位置?

问题描述 投票:0回答:1
another_list = [1, 2, 3, 4, 5, 6]
my_list = ['a', 'b', 'c', 'd', 'e', 'f']
    
output_list = [another_list[i] if i % 2 == 0 else my_list[i] for i in range(6)]
print(output_list)

这段代码完美运行。有没有其他不使用for循环的直接方法,比如切片函数?

我尝试了上面的方法。

python list merge addition
1个回答
0
投票

您可以:

  1. 使用切片从每个列表中获取所需的值
  2. 使用
    zip
    获取元组的可迭代对象,其中包含一个切片中的值和另一个切片中的值
  3. 使用
    itertools.chain
    展平元组的可迭代。

示例:

>>> from itertools import chain
>>> list(chain.from_iterable(zip(another_list[0::2], my_list[1::2])))
[1, 'b', 3, 'd', 5, 'f']
© www.soinside.com 2019 - 2024. All rights reserved.