python的列表排序sort和sorted

2021-08-28 16:13:53 字數 1577 閱讀 6971

list排序可以使用python內建的sorted()函式或list自帶的sort()函式。

區別:

sorted()不修改原list而是建立個新list,list.sort()直接修改原list;

>>

> l=[3

,4,2

,5,7

,1]>>

> l_new=

sorted

(l)>>

>

print

(l_new,l)

#原list未修改[1

,2,3

,4,5

,7][

3,4,

2,5,

7,1]

>>

> l.sort(

)>>

>

print

(l)#原list被修改[1

,2,3

,4,5

,7]

key引數:

key的值為函式名或匿名函式,該函式會自動處理list中的每個元素並返回處理結果,然後sort/sorted函式根據返回結果對list進行排序;

reverse引數:

true為反序,預設false即正序;

# 根據元素的第乙個值排序

>>

> l=[[

1,2]

,[2,

3],[

7,8]

,[5,

6],[

9,10]

]>>

> l_new=

sorted

(l,key=

lambda x:x[0]

)# key為匿名函式,

>>

>

print

(l_new)[[

1,2]

,[2,

3],[

5,6]

,[7,

8],[

9,10]

]>>

>

defget_key

(item)

:# 返回元素第乙個值

return item[0]

>>

> l.sort(key=get_key,reverse=

true

)# key為普通函式,並且進行反序排序

>>

>

print

(l)[[9

,10],

[7,8

],[5

,6],

[2,3

],[1

,2]]

穩定性

list中若存在相同的key,在排序前後相同key元素的順序是不會變化的。

例如:[[1,2],[2,9],[7,8],[2,6],[9,10]],以元素第乙個值排序後為[[1,2],[2,9],[2,6],[7,8],[9,10]],具有相同key的元素[2,9],[2,6]順序不變

Python 列表排序,sort函式,分組排序

在python中對列表的排序有乙個內建的方法 sort list1 9,8,7,6,5 list1.sort print list1 5,6,7,8,9 注意 sort 是乙個內建的list.sort 方法,可以直接改變列表的內容.公升序降序 sort 是可以接受乙個reverse引數,這個引數是乙...

列表排序 sort 函式

只有列表示有順序的,其他型別是沒有順序的,列表的排序,用到sort 方法。ls 2 3,6 89 ls.sort 預設為公升序 ls 2 3,6 89 ls.sort reverse true 降序 ls 89 6,3 2 1 準備知識 在python裡,字典dictionary是內建的資料型別,是...

Python 列表 sort 方法

python 列表 sort 方法對列表進行排序。sort 方法語法 l.sort key none reverse false 該方法沒有返回值,但是會對列表中的元素進行排序。以下例項展示了 sort 方法的使用方法 print 列表排序後 l1 l1.sort reverse true prin...