使用任何整数
我有一个列表
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]
使用任何整数
el
,el%2
只能返回0
(偶数(或1
(奇数(的想法。所以
- 当
el
奇数时,(1 + el%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]