我有这个包含正面和负面元素的列表,但现在我需要对列表进行排序并将其置于绝对值中,例如:
列表[-2,-3,8-,-5,1,7] ===>列表[1,2,3,5,7,8] 清楚吗? 代码:
a=5
b=6
c=-3
d=-8
lista = [a,b,c,d]
lista.sort()
lista.reverse()
答案 0 :(得分:3)
您可以使用map
和abs
功能来完成此任务:
In [1]: sorted(map(abs, lista))
Out[1]: [1, 2, 3, 5, 7, 8]
要使用您编写的代码执行此操作,您可以
# The list defined above
lista = [a,b,c,d]
# Sorted from least to greatest absolute value
sorted_abs_list = sorted(map(abs, lista))
# Sorted from greatest to least absolute value
sorted_abs_list = sorted(map(abs, lista), reverse=True)
答案 1 :(得分:1)
你可以这样试试,
>>> list[-2,-3,8,-5,1,7]
>>> list = [ i if i > 0 else -i for i in list]
>>> list.sort()
>>> list
[1, 2, 3, 5, 7, 8]
>>>
或者
>>> list[-2,-3,8,-5,1,7]
>>> list = [ abs(i) for i in list]
>>> list.sort()
>>> list
[1, 2, 3, 5, 7, 8]
答案 2 :(得分:0)
sorted([abs(el) for el in lista])
答案 3 :(得分:0)
如果要按绝对值对它们进行排序,但列表保持其原始值:
lista = [-2, -3, 8, -5, 1, 7]
lista.sort(key=lambda x: abs(x))
lista
Out: [1, -2, -3, -5, 7, 8]
答案 4 :(得分:0)
lista = [-2, -3, 8, -5, 1, 7]
lista.sort(key=abs)
lista
您可以尝试以上代码。