python中 list.sort() 和 sorted(list) 的區別

做個實驗,如下

b=[('a',1),('c',5),('b',4)]
print(sorted(b,key=lambda x:x[1]))
print(b)

b.sorted(key=lambda x:x[1])
print(b)

輸出結果:

總結:list.sort()只是list上的方法,list.sort()之後改變了list 的值,這時再輸出就是排序好的值

           sorted()可用於list,tuple,dic,map...sorted()之後沒有改變原list的值,這時再輸出仍然是原序列。但他返回了一個排好序的序列的copy,所以輸出時輸出的時排序好的copy序列。

= =有點繞,這個講的不錯

What is the difference between `sorted(list)` vs `list.sort()`?

 

所以,list.reverse()和reverse(list)也是同理

b=[('a',1),('c',5),('b',4)]

print(list(reversed(b)))
print(b)

b.reverse()
print(b)

 

可以看到,reversed(list)仍舊沒有改變原有的列表,第一個print的只是reverse(list)的copy

而list.reverse()之後,改變了原有的列表,再輸出就是reverse過的列表

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章