我有這個列表包含正面和負面因素,但現在我需要對列表進行排序,並把它的絕對值,例如:如何排序列表,並把它放在絕對值
列表[-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()
我有這個列表包含正面和負面因素,但現在我需要對列表進行排序,並把它的絕對值,例如:如何排序列表,並把它放在絕對值
列表[-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)
sorted([abs(el) for el in lista])
'sorted'可以接受一個生成器表達式作爲參數,因此'sorted(abs(el)for el in lista)'更好。 – rahmu
你可以這樣試試,
>>> 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]
如果你想通過自己的絕對值排序,但都榜上有名保持其原始值:
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
你可以試試上面的代碼。
但是我怎麼用我寫的代碼做這件事?謝謝 –
我編輯了我的答案給你一個簡單的例子來解決。 – mdml