Python中列表排序主要使用sort()和sorted()。1. sort()為原地排序,直接修改原列表,如numbers=[3,1,4,1,5,9,2]調用numbers.sort()后變?yōu)閇1,1,2,3,4,5,9];sorted()返回新列表,原列表不變,如sorted(numbers)返回新列表但numbers保持不變。2. 降序排序通過reverse=True實現(xiàn),如numbers.sort(reverse=True)結果為[9,5,4,3,2,1,1],sorted(words,reverse=True)對字符串降序排列。3. 自定義排序使用key參數(shù),如words.sort(key=len)按字符串長度排序結果為['pie','kiwi','apple','banana'],sorted(numbers,key=abs)按絕對值排序結果為[-1,3,-5,-7,10]。4. 排序復雜對象可用lambda,如students.sort(key=lambda x:x['score'])按成績升序排列學生列表。關鍵點:sort()修改原列表,sorted()返回新列表,key定義規(guī)則,reverse=True實現(xiàn)降序,方法簡單實用。
Python 中對列表排序是一個常見操作,主要用 sort()
方法和 sorted()
函數(shù)。下面通過幾個典型例子說明用法。

1. 基本排序:數(shù)字和字符串
升序排序數(shù)字列表:
numbers = [3, 1, 4, 1, 5, 9, 2] numbers.sort() print(numbers) # 輸出: [1, 1, 2, 3, 4, 5, 9]
注意:
sort()
是原地排序,會直接修改原列表。
如果不想修改原列表,用 sorted()
:
numbers = [3, 1, 4, 1, 5, 9, 2] sorted_numbers = sorted(numbers) print(sorted_numbers) # 輸出: [1, 1, 2, 3, 4, 5, 9] print(numbers) # 輸出: [3, 1, 4, 1, 5, 9, 2](原列表不變)
字符串列表排序(按字母順序):

words = ['banana', 'apple', 'cherry'] words.sort() print(words) # 輸出: ['apple', 'banana', 'cherry']
2. 降序排序
使用 reverse=True
參數(shù):
numbers = [3, 1, 4, 1, 5, 9, 2] numbers.sort(reverse=True) print(numbers) # 輸出: [9, 5, 4, 3, 2, 1, 1]
sorted()
同樣支持:
sorted_desc = sorted(words, reverse=True) print(sorted_desc) # 輸出: ['cherry', 'banana', 'apple']
3. 按自定義規(guī)則排序(key 參數(shù))
比如按字符串長度排序:
words = ['banana', 'pie', 'apple', 'kiwi'] words.sort(key=len) print(words) # 輸出: ['pie', 'kiwi', 'apple', 'banana']
按絕對值排序數(shù)字:
numbers = [-5, 3, -1, 10, -7] sorted_abs = sorted(numbers, key=abs) print(sorted_abs) # 輸出: [-1, 3, -5, -7, 10]
4. 排序復雜對象(如字典或元組)
假設有一個學生列表,按成績排序:
students = [ {'name': 'Alice', 'score': 85}, {'name': 'Bob', 'score': 90}, {'name': 'Charlie', 'score': 78} ] # 按 score 排序 students.sort(key=lambda x: x['score']) print(students) # 輸出: 按分數(shù)升序排列
用 lambda
提取排序關鍵字,非常靈活。
基本上就這些常見用法。記住關鍵點:
-
list.sort()
修改原列表,sorted(list)
返回新列表 - 用
key=
定義排序規(guī)則 -
reverse=True
實現(xiàn)降序
不復雜,但很實用。
以上是Python排序列表示例的詳細內容。更多信息請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

多態(tài)是Python面向對象編程中的核心概念,指“一種接口,多種實現(xiàn)”,允許統(tǒng)一處理不同類型的對象。1.多態(tài)通過方法重寫實現(xiàn),子類可重新定義父類方法,如Animal類的speak()方法在Dog和Cat子類中有不同實現(xiàn)。2.多態(tài)的實際用途包括簡化代碼結構、增強可擴展性,例如圖形繪制程序中統(tǒng)一調用draw()方法,或游戲開發(fā)中處理不同角色的共同行為。3.Python實現(xiàn)多態(tài)需滿足:父類定義方法,子類重寫該方法,但不要求繼承同一父類,只要對象實現(xiàn)相同方法即可,這稱為“鴨子類型”。4.注意事項包括保持方

參數(shù)(parameters)是定義函數(shù)時的占位符,而傳參(arguments)是調用時傳入的具體值。1.位置參數(shù)需按順序傳遞,順序錯誤會導致結果錯誤;2.關鍵字參數(shù)通過參數(shù)名指定,可改變順序且提高可讀性;3.默認參數(shù)值在定義時賦值,避免重復代碼,但應避免使用可變對象作為默認值;4.args和*kwargs可處理不定數(shù)量的參數(shù),適用于通用接口或裝飾器,但應謹慎使用以保持可讀性。

迭代器是實現(xiàn)__iter__()和__next__()方法的對象,生成器是簡化版的迭代器,通過yield關鍵字自動實現(xiàn)這些方法。1.迭代器每次調用next()返回一個元素,無更多元素時拋出StopIteration異常。2.生成器通過函數(shù)定義,使用yield按需生成數(shù)據(jù),節(jié)省內存且支持無限序列。3.處理已有集合時用迭代器,動態(tài)生成大數(shù)據(jù)或需惰性求值時用生成器,如讀取大文件時逐行加載。注意:列表等可迭代對象不是迭代器,迭代器到盡頭后需重新創(chuàng)建,生成器只能遍歷一次。

類方法是Python中通過@classmethod裝飾器定義的方法,其第一個參數(shù)為類本身(cls),用于訪問或修改類狀態(tài)。它可通過類或實例調用,影響的是整個類而非特定實例;例如在Person類中,show_count()方法統(tǒng)計創(chuàng)建的對象數(shù)量;定義類方法時需使用@classmethod裝飾器并將首參命名為cls,如change_var(new_value)方法可修改類變量;類方法與實例方法(self參數(shù))、靜態(tài)方法(無自動參數(shù))不同,適用于工廠方法、替代構造函數(shù)及管理類變量等場景;常見用途包括從

處理API認證的關鍵在于理解并正確使用認證方式。1.APIKey是最簡單的認證方式,通常放在請求頭或URL參數(shù)中;2.BasicAuth使用用戶名和密碼進行Base64編碼傳輸,適合內部系統(tǒng);3.OAuth2需先通過client_id和client_secret獲取Token,再在請求頭中帶上BearerToken;4.為應對Token過期,可封裝Token管理類自動刷新Token;總之,根據(jù)文檔選擇合適方式,并安全存儲密鑰信息是關鍵。

Python的magicmethods(或稱dunder方法)是用于定義對象行為的特殊方法,它們以雙下劃線開頭和結尾。1.它們使對象能夠響應內置操作,如加法、比較、字符串表示等;2.常見用例包括對象初始化與表示(__init__、__repr__、__str__)、算術運算(__add__、__sub__、__mul__)及比較運算(__eq__、__lt__);3.使用時應確保其行為符合預期,例如__repr__應返回可重構對象的表達式,算術方法應返回新實例;4.應避免過度使用或以令人困惑的方

Pythonmanagesmemoryautomaticallyusingreferencecountingandagarbagecollector.Referencecountingtrackshowmanyvariablesrefertoanobject,andwhenthecountreacheszero,thememoryisfreed.However,itcannothandlecircularreferences,wheretwoobjectsrefertoeachotherbuta

@property是Python中用于將方法偽裝成屬性的裝飾器,允許在訪問屬性時執(zhí)行邏輯判斷或動態(tài)計算值。1.它通過@property裝飾器定義getter方法,使外部像訪問屬性一樣調用方法;2.搭配.setter可控制賦值行為,如校驗值合法性,不定義.setter則為只讀屬性;3.適用于屬性賦值校驗、動態(tài)生成屬性值、隱藏內部實現(xiàn)細節(jié)等場景;4.使用時注意屬性名與私有變量名不同名,避免死循環(huán),適合輕量級操作;5.示例中Circle類限制radius非負,Person類動態(tài)生成full_name屬
