我想反转列表中的所有值。我的列表由0、1、2和3组成(例如[0,2,2,3,1,3,2]),我想反转项目的值(将所有0更改为3,将所有1到,所有2到1以及所有3到0 => [3,1,1,0,2,0,1])。
在python中有可能吗?
我尝试使用列表推导没有成功。
li=[0,2,2,3,1,3,2]
print(list(reversed(li)))
我所拥有的:[0,2,2,3,1,3,2] 我想要的是:[3,1,1,0,2,0,1]
答案 0 :(得分:4)
使用map
并将每个值减去列表l
中的最大值:
>>> l = [0,2,2,3,1,3,2]
>>> list(map(max(l).__sub__, l))
[3, 1, 1, 0, 2, 0, 1]
>>>
或使用列表理解:
>>> [max(l) - i for i in l]
[3, 1, 1, 0, 2, 0, 1]
>>>
答案 1 :(得分:1)
reversed
函数将反转列表的 order ,而不是列表本身的值。使用map
可以通过几种方法将要应用的功能应用于列表的每个元素。以下是适用于您特定示例的示例:
list(map(lambda x: abs(x-3), li)