Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对列表进行排序并将其放入绝对值_Python_List - Fatal编程技术网

Python 如何对列表进行排序并将其放入绝对值

Python 如何对列表进行排序并将其放入绝对值,python,list,Python,List,我有一个包含正负元素的列表,但现在我需要对列表进行排序,并将其放入绝对值,例如: 列表[-2,-3,8,-5,1,7]=>list[1,2,3,5,7,8] 清楚吗? 守则: a=5 b=6 c=-3 d=-8 lista = [a,b,c,d] lista.sort() lista.reverse() 您可以使用map和abs功能来完成以下操作: In [1]: sorted(map(abs, lista)) Out[1]: [1, 2, 3, 5, 7, 8] 要对您编写的代码执行此操

我有一个包含正负元素的列表,但现在我需要对列表进行排序,并将其放入绝对值,例如:

列表[-2,-3,8,-5,1,7]=>list[1,2,3,5,7,8] 清楚吗? 守则:

a=5
b=6
c=-3
d=-8

lista = [a,b,c,d]
lista.sort()
lista.reverse()

您可以使用
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)
你可以这样试试

>>> 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]
>>> 


如果要按其绝对值对其进行排序,但要使列表保持其原始值,请执行以下操作:

lista = [-2, -3, 8, -5, 1, 7]

lista.sort(key=lambda x: abs(x))

lista 

Out: [1, -2, -3, -5, 7, 8]

您可以尝试以上代码。

我编辑了我的答案,为您提供了一个简单的示例。您可以将
-1*I
替换为
-I
。或者,如果i>0 else-i,您可以将
i替换为
abs(i)
。另外,请避免命名变量
list
或其他内置函数。
abs()
是一个提供绝对值的函数。
sorted
可以接受生成器表达式作为参数,因此
sorted(abs(el)for el in lista)
效果更好。
>>> list[-2,-3,8,-5,1,7]
>>> list = [ abs(i) for i in list]
>>> list.sort()
>>> list
[1, 2, 3, 5, 7, 8]
lista = [-2, -3, 8, -5, 1, 7]

lista.sort(key=lambda x: abs(x))

lista 

Out: [1, -2, -3, -5, 7, 8]
lista = [-2, -3, 8, -5, 1, 7]

lista.sort(key=abs)

lista