Python 列表元素絕對值排序

2021-10-04 01:40:05 字數 1807 閱讀 3366

輸入乙個列表,要求列表中的每個元素都為整數;

將列表中的所有元素按照它們的絕對值大小進行排序,絕對值相同的還保持原來的相對位置,列印排序後的列表(絕對值大小僅作為排序依據,列印出的列表中元素仍為原列表中的元素)。

可以使用以下實現列表alist的輸入:

alist=list(map(int,input().split()))
輸入格式:

共一行,列表中的元素值,以空格隔開。

輸出格式:

共一行,為乙個列表。

輸入樣例:

-2 1 3

輸出樣例:

[1, -2, 3]

時間限制:500ms記憶體限制:32000kb

1  起初使用選擇排序進行測試,用例測試第三組資料的時候卡住了,提示排序錯誤,可以用sort方法來排序,並設定該方法的key引數。

2  在選擇用sort進行排序時,通過查閱資料,了解了一些關於sort以及sorted的一些知識點。

sort() 函式用於對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式。

sort語法

list.sor(key=none(進行比較的元素), reverse(排序規則)=false(公升序,true降序) )

sorted語法

sorted(iterable(可迭代物件,即列表), key=none(進行比較的元素), reverse=false(公升序,預設值))

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。

首先想到的是構成乙個二維列表,第一列表示初始資料,第二列表示絕對值資料。 再對二維列表中的第二列表絕對值資料用sorted進行排序,輸出第一列初始資料所在的列表

alist = list(map(int,input().split()))

blist =

n = len(alist)

for i in range (n):

newlist = list(zip(alist,blist)) #zip可以將兩個一維列表合併成二維列表,下標從0開始,相同下標的相組合

#關於sorted的用法

clist = sorted(newlist,key = lambda x:x[1]) #lambda函式用於指定對列表中所有元素進行排序的準則

dlist = [i[0] for i in clist] #從clist(二維列表)中的每一行取第乙個

print(dlist)

#關於sort的用法

# 獲取列表的第二個元素

#def takesecond(elem):

return elem[1]

#newlist.sort(key = takesecond)

#dlist = [i[0] for i in newlist] #從newlist(二維列表)中的每一行取第乙個

#print(dlist)

偶然看見一位大神直接對一維列表alist進行sorted排序,key = abs,以下是大神連線

alist = list(map(int,input().split()))

alist.sort(key = abs)

print(alist)

python入門 列表元素絕對值排序

題目內容 輸入乙個列表,要求列表中的每個元素都為整數 將列表中的所有元素按照它們的絕對值大小進行排序,絕對值相同的還保持原來的相對位置,列印排序後的列表 絕對值大小僅作為排序依據,列印出的列表中元素仍為原列表中的元素 可以使用以下實現列表alist的輸入 alist list map int,inp...

4列表元素絕對值排序

題目內容 輸入乙個列表,要求列表中的每個元素都為整數 將列表中的所有元素按照它們的絕對值大小進行排序,絕對值相同的還保持原來的相對位置,列印排序後的列表 絕對值大小僅作為排序依據,列印出的列表中元素仍為原列表中的元素 可以使用以下實現列表alist的輸入 alist list map int,inp...

python 實戰12 列表元素絕對值排序

列表元素絕對值排序 題目內容 輸入乙個列表,要求列表中的每個元素都為整數 將列表中的所有元素按照它們的絕對值大小進行排序,絕對值相同的還保持原來的相對位置,列印排序後的列表 絕對值大小僅作為排序依據,列印出的列表中元素仍為原列表中的元素 可以使用以下實現列表alist的輸入 alist list m...