python序列 列表,元組,字典 的常用排序

2021-10-06 20:43:20 字數 2395 閱讀 1498

正向排序

sort()

>>> list=[1,6,3,4,5,2]

>>> list.sort()

>>> list

[1, 2, 3, 4, 5, 6]

sorted()

>>> sorted([1,6,3,4,5,2])

[1, 2, 3, 4, 5, 6]

sort與sorted區別

sort是永久的,而sorted是臨時的。

逆向排序

sort()

>>> list=[1,6,3,4,5,2]

>>> list.sort(reverse=true)

>>> list

[6, 5, 4, 3, 2, 1]

sorted()

>>> sorted([1,6,3,4,5,2],reverse=true)

[6, 5, 4, 3, 2, 1]

反轉排序

reverse()

>>> list=[1,6,3,4,5,2]

>>> list.reverse()

>>> list

[2, 5, 4, 3, 6, 1]

切片方法

>>> list=[1,6,3,4,5,2]

>>> list[::-1]

[2, 5, 4, 3, 6, 1]

多層列表排序

#對列表的第二個元素排序

>>> list=[('b',6),('a',1),('c',3),('d',4)]

>>> list.sort(key=lambda x:x[1])

>>> list

[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

#對列表的第二個元素排序後,再對第乙個元素排序

>>> list=[('b',1),('a',1),('c',3),('d',4)]

>>> list.sort(key=lambda x:(x[1],x[0]))

>>> list

[('a', 1), ('b', 1), ('c', 3), ('d', 4)]

元組排序可通過list函式將元組轉換成列表,採用列表排序方法即可。

元組列表間轉換方法:

list1=[1,2,3]

tup1=tuple(list1)

print(tup1)

print(list(tup1))

執行結果

(1, 2, 3)

[1, 2, 3]

通過key排序

d = 

sorted_key_list = sorted(d)                 #正向排序

#sorted_key_list = sorted(d,reverse=true)           #逆向排序

print(sorted_key_list)

sorted_dict = list(map(lambda x:, sorted_key_list))

print(sorted_dict)

執行結果

['a', 'a', 'b', 'c']                        # 根據ascii碼大小排序

[, , , ]

通過value排序 

d = 

sorted_key_list = sorted(d, key=lambda x:d[x])              #正向排序

# sorted_key_list = sorted(d, key=lambda x:d[x], reverse=true)      #逆向排序

print(sorted_key_list)

sorted_dict = list(map(lambda x:, sorted_key_list))

print(sorted_dict)

執行結果:

['a', 'a', 'b', 'c']

[, , , ]

ps:

map函式在python2中返回的是乙個列表,而在python3中返回的是乙個迭代器(位址)。故想以列表輸出,需要在map前新增list,轉換下格式。

python字典序列解包用於列表元組字典

序列解包可以用於元組 列表 字典。序列解包可以讓我們方便的對多個變數賦值。x,y,z 10,20,30 print x 結果 10 print y 結果 20 print z 結果 30 a,b,c 40,50,60 print a 結果 40 print b 結果 50 print c 結果 60...

Python序列 列表

列表是能保留任意數目的python物件的靈活的容器。extend 方法可代替連線操作符把乙個列表的內容新增到另乙個中去。注 使用extend 方法比連線操作的乙個優點是它實際上是把新列表新增到了原有列表裡面,而不是像連線操作符那樣新建乙個列表。sorted函式可以將任何序列返回為乙個新的有序列表 s...

python列表元組字典

1.列表的資料項不需要具有相同的型別 建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可 list1 google runoob 1997 2000 print list 0 list 0 2.列表的增 刪 改 查 insert delete update query 增 list.in...