如何使列表中的每个元素都成为正数
l =[[u'Contribution', -2.6, -2.6, -2.6, -1.3, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -9.100000000000001], [u'Tax ',
-569.72, -569.72, -569.72, -284.86, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, -1994.02], [u'CityTax', -387.32,
-387.32, -387.32, -193.66, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,-1355.6200000000001]]
输出应该是
[[u'Contribution', 2.6, 2.6, 2.6, 1.3, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.100000000000001], [u'Tax ',
569.72, 569.72, 569.72, 284.86, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 1994.02], [u'CityTax', 387.32,
387.32, 387.32, 193.66, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,1355.6200000000001]]
-ve值应转换为正数,列表应保持原样
我试过了
p=[]
k=[]
for i in l:
p.append([abs(x) for x in i[1:]])
k.append(i[0])
for j in p:
j.append(k[j])
另一种选择是,如果非数字元素分布在子列表中(也可避免切片):
您的方法也接近正确,我们只需要加入
p
和k
:这种理解将起作用:
除了内在理解,你还可以使用
map
:或者,最普遍的说法是:
相关问题 更多 >
编程相关推荐