首页 > 趣闻 > 正文内容

Python列表排序全攻略:sorted与sort使用场景解析

趣闻2025-05-19 15:49:47

"鍝庡鍛€锛屾湁娌℃湁琚玃ython鐨勬帓搴忔悶寰楀ご澶ц繃锛熸槑鏄庨兘鏄帓搴忥紝sorted鍜宻ort鍒板簳璇ョ敤鍝釜锛? 杩欐槸鎴戝垰瀛ython鏃舵瘡澶╅兘鍦ㄧ籂缁撶殑闂銆備粖澶╁挶浠氨鎶婅繖涓や釜鍏勫紵鎺板紑浜嗘弶纰庝簡璁叉竻妤氾紝淇濅綘鐪嬪畬灏辫兘闂潃鐪肩潧鐢紒


鈻?鍏堟悶鎳傚熀鏈蹇碉細杩欎咯璐х┒绔熸槸涓暐锛?/h3>

锛堟暡榛戞澘锛夎浣忚繖涓牳蹇冨尯鍒細鈥?strong>鈥媠ort鏄翰濡堢敓鐨勶紝sorted鏄殧澹佽€佺帇瀹跺€熺殑鈥?/strong>鈥嬨€傚晩涓嶆槸锛岃浜鸿瘽灏辨槸锛?/p>

  1. 鈥?strong>鈥媠ort()鈥?/strong>鈥?鏄垪琛ㄨ嚜甯︾殑浜插効瀛愭柟娉曪紝鐩存帴淇敼鍘熷垪琛?/li>
  2. 鈥?strong>鈥媠orted()鈥?/strong>鈥?鏄釜澶栨潵鍑芥暟锛屼細鐢熸垚鏂板垪琛ㄤ笉鐮村潖鍘熸暟鎹?/li>

涓句釜鏍楀瓙馃尠锛?/p>

python澶嶅埗
鍘熼厤 = [3,1,4,2]
鍘熼厤.sort()
print(鍘熼厤)  # 杈撳嚭[1,2,3,4] 鍘熼厤琚敼閫犱簡锛?/span>

澶囪儙 = [3,1,4,2]
鏂板垪琛?= sorted(澶囪儙)
print(澶囪儙)    # 杩樻槸[3,1,4,2] 鍘熼厤瀹屽ソ鏃犳崯
print(鏂板垪琛?  # 杈撳嚭[1,2,3,4]

鈻?鏍稿績涓夎繛闂細浠€涔堟椂鍊欒鐢ㄨ皝锛?/h3>

Q1锛氭垜闇€瑕佷繚鐣欏師濮嬫暟鎹悧锛?br/> 鈫?瑕佷繚鐣欑敤鈥?strong>鈥媠orted鈥?/strong>鈥嬶紝涓嶈淇濈暀鐢ㄢ€?strong>鈥媠ort鈥?/strong>鈥?/p>

Q2锛氭垜瑕佸鐞嗗叾浠栫被鍨嬫暟鎹悧锛?br/> 鈫?鍏冪粍/瀛楀吀绛夐潪鍒楄〃鏁版嵁蹇呴』鐢ㄢ€?strong>鈥媠orted鈥?/strong>鈥?/p>

Q3锛氭垜瑕侀摼寮忚皟鐢ㄥ悧锛?br/> 鈫?鎯冲啓鎴?code>澶勭悊().鎺掑簭().杩囨护()杩欑楠氭搷浣滃繀椤荤敤鈥?strong>鈥媠orted鈥?/strong>鈥?/p>

鈥?strong>鈥嬩釜浜鸿娉彶鈥?/strong>鈥嬶細鏈夋澶勭悊璐㈠姟鏁版嵁鐢ㄤ簡sort锛岀粨鏋滃師濮嬫暟鎹绡℃敼锛屽樊鐐硅璐㈠姟灏忓濮愯拷鐫€鎵?..


鈻?鍙傛暟璁剧疆澶ф彮绉橈細key鍜宺everse鎬庝箞鐜╋紵

杩欎咯鏂规硶閮芥湁涓や釜榛勯噾鎼。鍙傛暟锛?/p>

  1. 鈥?strong>鈥媟everse=True鈥?/strong>鈥?鈫?鍊掑簭鎺掑垪
  2. 鈥?strong>鈥媖ey=鍑芥暟鈥?/strong>鈥?鈫?鑷畾涔夋帓搴忚鍒?/li>

鏉ヤ釜瀹炴垬妗堜緥锛?/p>

python澶嶅埗
瀛︾敓鎴愮哗 = [("灏忔槑",88), ("灏忕孩",95), ("澶ч粍",76)]
# 鎸夊垎鏁板€掑簭鎺?/span>
sorted(瀛︾敓鎴愮哗, key=lambda x:x[1], reverse=True)
# 杈撳嚭[('灏忕孩',95), ('灏忔槑',88), ('澶ч粍',76)]

鈥?strong>鈥嬪喎鐭ヨ瘑鈥?/strong>鈥嬶細lambda杩欎釜鐪嬬潃鍍忎贡鐮佺殑涓滆タ锛屽叾瀹炲氨鏄釜鍖垮悕鍑芥暟銆傛妸瀹冩兂鎴愪复鏃跺伐灏辫锛岀敤瀹屽氨鎵斾笉鍗犲唴瀛榽


鈻?鎬ц兘瀵瑰喅锛氳皝鏇村揩鏇寸粰鍔涳紵

娴嬭瘯10涓囨潯鏁版嵁鎺掑簭鑰楁椂锛?/p>

  • sort()骞冲潎鑰楁椂锛?.02绉?/li>
  • sorted()骞冲潎鑰楁椂锛?.03绉?/li>

鈥?strong>鈥嬬粨璁衡€?/strong>鈥嬶細

  • 鏁版嵁閲忓皬闅忎究鐢?/li>
  • 澶ф暟鎹噺涓斾笉闇€瑕佷繚鐣欏師鏁版嵁鏃讹紝sort鐣ュ揩
  • 浣嗚繖鐐瑰樊璺濆湪褰撲唬璁$畻鏈洪潰鍓?..锛堝皬澹伴€奸€硷級璺熻殜瀛愯吙宸笉澶?/li>

鈥?strong>鈥嬩釜浜鸿鐐光€?/strong>鈥嬶細涓庡叾绾犵粨杩欑偣鎬ц兘锛屼笉濡傚厛鎶婁唬鐮佸啓瀵广€傛垜鐜板湪鏇村€惧悜鐢╯orted澶勭悊涓存椂鎺掑簭锛岄伩鍏嶆墜婊戞敼鍧忓師鏁版嵁


鈻?鏂版墜蹇呰俯鐨勪笁澶ф繁鍧?/h3>
  1. 瀵瑰瓧绗︿覆鍒楄〃鐩存帴鎺掑簭 鈫?娉ㄦ剰涓枃缂栫爜闂锛?/li>
python澶嶅埗
# 閿欒绀鸿寖
["鑻规灉", "Banana", "123"].sort() # 浼氭寜Unicode鐮佷贡鎺?/span>
  1. 宓屽鍒楄〃鎺掑簭涓嶆寚瀹歬ey 鈫?鎺掍簡涓瘋瀵?/li>
  2. 鎶妔orted鐨勭粨鏋滆祴鍊肩粰鍘熷彉閲?鈫?鍐呭瓨娴垂
python澶嶅埗
# 鍙嶉潰鏁欐潗
鍘熷垪琛?= 鍘熷垪琛?sort() # 杩斿洖鐨勬槸None鍟婁翰锛?/span>

鈻?鑺卞紡鐜╂硶锛氳繖浜涜繘闃舵妧宸т綘鐭ラ亾鍚楋紵

  • 澶氭潯浠舵帓搴忥紙鍏堟寜骞撮緞鍐嶆寜鍒嗘暟锛?/li>
python澶嶅埗
sorted(鏁版嵁, key=lambda x:(x[1], -x[2]))
  • 鑷畾涔夋帓搴忚鍒欙紙姣斿鎸夊瓧绗︿覆闀垮害锛?/li>
python澶嶅埗
sorted(["python", "java", "c"], key=len)
  • 缁欏璞℃帓搴忥紙姣斿娓告垙瑙掕壊鎸夋垬鏂楀姏锛?/li>
python澶嶅埗
class 瑙掕壊:
    def __init__(self, 鎴樺姏):
        self.鎴樺姏 = 鎴樺姏
        
sorted(瑙掕壊鍒楄〃, key=lambda r:r.鎴樺姏)

鈻?缁堟瀬閫夋嫨鎸囧崡锛堟帍鍑虹浼犳祦绋嬪浘锛?/h3>

闇€瑕佹敼鍘熷垪琛ㄥ悧锛?br/> 鈫?鏄?鈫?鐢╯ort()
鈫?鍚?鈫?鎺ョ潃鐪嬧啌
闇€瑕佸鐞嗗叾浠栧彲杩唬瀵硅薄锛?br/> 鈫?鏄?鈫?鐢╯orted()
鈫?鍚?鈫?闅忎究鐢紒

鈥?strong>鈥嬫渶鍚庤鍙ュぇ瀹炶瘽鈥?/strong>鈥嬶細鍒氬紑濮嬪涓嶇敤姝昏纭儗锛屽啓閿欏嚑娆″氨璁颁綇浜嗭紙鍒棶鎴戞槸鎬庝箞鐭ラ亾鐨勶級銆傜紪绋嬪氨鍍忚皥鎭嬬埍锛屽鐫€澶勭潃灏辨湁鎰熻浜嗐€備笅娆¢亣鍒版帓搴忛棶棰橈紝璁板緱鍥炴潵鐪嬬湅杩欑瘒鏀荤暐灏辫~

搜索