如何使用 python 将每个替代元素与数字混合并返回列表?



我有一个列表

my_list = [1,2,3,4,5,6]

我想将奇数元素乘以 2 并返回

new_list = [2,2,6,4,10,6]

我只能使用列表理解获得替代方案:

>>>>new_list = [i*2 for i in my_list[::2]]
[2, 6, 10]

这样输入列表中的数字就不需要排序了:

[i*2 if not idx%2 else i for idx,i in enumerate(my_list)]

您需要使用索引

您可以将奇数位置的元素乘以 2,并在list comphrehension期间保留其他元素。

new_list = [num*2 if id%2==0 else num for (id, num) in enumerate(my_list)]

输出

[2, 2, 6, 4, 10, 6]

下面的代码工作:

my_list = [1,2,3,4,5,6]
new_lis=[i if i%2==0 else i*2 for i in my_list ]
print(new_lis)

怎么样

>>> [(1 + el%2)*el for el in my_list]
[2, 2, 6, 4, 10, 6]


使用任何整数elel%2只能返回0(偶数(或1(奇数(的想法。所以
  1. el奇数时,(1 + el%2)等于2
  2. el均匀时,(1 + el%2)等于1

去吧!

import numpy as np
my_list = [1,2,3,4,5,6]
A = np.array(my_list )
A[::2] *= 2

输出:

array([ 2,  2,  6,  4, 10,  6])

这是一个使用 map 和 lambda 的解决方案:)

my_list = [1,2,3,4,5,6]
print(map(lambda x: x*2 if x%2!=0 else x, my_list))
# [2, 2, 6, 4, 10, 6]

最新更新