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


列表

正向排序

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 = {'a': 2, 'A': 1, 'c': 3, 'b': 2}
sorted_key_list = sorted(d)					#正向排序
#sorted_key_list = sorted(d,reverse=True)			#逆向排序
print(sorted_key_list)
sorted_dict = list(map(lambda x:{x:d[x]}, sorted_key_list))
print(sorted_dict)

運行結果
['A', 'a', 'b', 'c']						# 根據ascii碼大小排序
[{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]

 

通過value排序 

d = {'a': 2, 'A': 1, 'c': 3, 'b': 2}
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:{x:d[x]}, sorted_key_list))
print(sorted_dict)

運行結果:
['A', 'a', 'b', 'c']
[{'A': 1}, {'a': 2}, {'b': 2}, {'c': 3}]

  

PS:

Map函數在python2中返回的是一個列表,而在python3中返回的是一個迭代器(地址)。故想以列表輸出,需要在map前添加list,轉換下格式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM