反向清单项目值

时间:2019-06-24 10:18:45

标签: python

我想反转列表中的所有值。我的列表由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]

2 个答案:

答案 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)