我需要将列表的前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:])
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
这是另一种方式,使用列表理解:
[ x*0.3 if i<3 else x*0.7 for i,x in enumerate(experience_yrs) ]