将列表中的某些元素乘以常量,将其他元素乘以不同的常量

时间:2015-01-25 01:08:42

标签: python-2.7 lambda

我需要将列表的前3个元素乘以常量(比如0.3),然后将其余元素乘以不同的常量(比如0.7)。

输入: 未指定长度的列表。

experience_yrs =[2.328767123287671, 2.16986301369863, 0.4931506849315068, 0.7506849315068493, 0.5780821917808219, 1.5808219178082192]

输出: 转换后的元素列表是原始元素和常量的产物。

[0.6986301369863014, 0.650958904109589, 0.14794520547945203, 0.5254794520547945, 0.4046575342465753, 1.1065753424657534]

我使用lambda表达式尝试了这个。

map(lambda x: x*0.3, experience_yrs[0:3]) + map(lambda x: x*0.7, experience_yrs[3:])

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

这是另一种方式,使用列表理解:

[ x*0.3 if i<3 else x*0.7   for i,x in enumerate(experience_yrs)  ]