关于Python中sort方法的使用报错 python中sort用法的问题

\u5173\u4e8ePython\u4e2dsort\u51fd\u6570\u8d4b\u503c\u7684\u95ee\u9898

Python\u4e2d\u7684sort()\u65b9\u6cd5\u7528\u4e8e\u6570\u7ec4\u6392\u5e8f\uff0c\u672c\u6587\u4ee5\u5b9e\u4f8b\u5f62\u5f0f\u5bf9\u6b64\u52a0\u4ee5\u8be6\u7ec6\u8bf4\u660e\uff1a
\u4e00\u3001\u57fa\u672c\u5f62\u5f0f
\u5217\u8868\u6709\u81ea\u5df1\u7684sort\u65b9\u6cd5\uff0c\u5176\u5bf9\u5217\u8868\u8fdb\u884c\u539f\u5740\u6392\u5e8f\uff0c\u65e2\u7136\u662f\u539f\u5740\u6392\u5e8f\uff0c\u90a3\u663e\u7136\u5143\u7ec4\u4e0d\u53ef\u80fd\u62e5\u6709\u8fd9\u79cd\u65b9\u6cd5\uff0c\u56e0\u4e3a\u5143\u7ec4\u662f\u4e0d\u53ef\u4fee\u6539\u7684\u3002


123

x = [4, 6, 2, 1, 7, 9]x.sort()print x # [1, 2, 4, 6, 7, 9]


\u5982\u679c\u9700\u8981\u4e00\u4e2a\u6392\u5e8f\u597d\u7684\u526f\u672c\uff0c\u540c\u65f6\u4fdd\u6301\u539f\u6709\u5217\u8868\u4e0d\u53d8\uff0c\u600e\u4e48\u5b9e\u73b0\u5462


12345

x =[4, 6, 2, 1, 7, 9]y = x[ : ]y.sort()print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]


\u6ce8\u610f\uff1ay = x[:] \u901a\u8fc7\u5206\u7247\u64cd\u4f5c\u5c06\u5217\u8868x\u7684\u5143\u7d20\u5168\u90e8\u62f7\u8d1d\u7ed9y\uff0c\u5982\u679c\u7b80\u5355\u7684\u628ax\u8d4b\u503c\u7ed9y\uff1ay = x\uff0cy\u548cx\u8fd8\u662f\u6307\u5411\u540c\u4e00\u4e2a\u5217\u8868\uff0c\u5e76\u6ca1\u6709\u4ea7\u751f\u65b0\u7684\u526f\u672c\u3002
\u53e6\u4e00\u79cd\u83b7\u53d6\u5df2\u6392\u5e8f\u7684\u5217\u8868\u526f\u672c\u7684\u65b9\u6cd5\u662f\u4f7f\u7528sorted\u51fd\u6570\uff1a


1234

x =[4, 6, 2, 1, 7, 9]y = sorted(x)print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]


sorted\u8fd4\u56de\u4e00\u4e2a\u6709\u5e8f\u7684\u526f\u672c\uff0c\u5e76\u4e14\u7c7b\u578b\u603b\u662f\u5217\u8868\uff0c\u5982\u4e0b\uff1a


1

print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']


\u4e8c\u3001\u81ea\u5b9a\u4e49\u6bd4\u8f83\u51fd\u6570
\u53ef\u4ee5\u5b9a\u4e49\u81ea\u5df1\u7684\u6bd4\u8f83\u51fd\u6570\uff0c\u7136\u540e\u901a\u8fc7\u53c2\u6570\u4f20\u9012\u7ed9sort\u65b9\u6cd5\uff1a


12345678910111213

def comp(x, y):if x y:return -1else:return 0 nums = [3, 2, 8 ,0 , 1]nums.sort(comp)print nums # \u964d\u5e8f\u6392\u5e8f[8, 3, 2, 1, 0]nums.sort(cmp) # \u8c03\u7528\u5185\u5efa\u51fd\u6570cmp \uff0c\u5347\u5e8f\u6392\u5e8fprint nums # \u964d\u5e8f\u6392\u5e8f[0, 1, 2, 3, 8]


\u4e09\u3001\u53ef\u9009\u53c2\u6570
sort\u65b9\u6cd5\u8fd8\u6709\u4e24\u4e2a\u53ef\u9009\u53c2\u6570\uff1akey\u548creverse

1\u3001key\u5728\u4f7f\u7528\u65f6\u5fc5\u987b\u63d0\u4f9b\u4e00\u4e2a\u6392\u5e8f\u8fc7\u7a0b\u603b\u8c03\u7528\u7684\u51fd\u6570\uff1a


123

x = ['mmm', 'mm', 'mm', 'm' ]x.sort(key = len)print x # ['m', 'mm', 'mm', 'mmm']


2\u3001reverse\u5b9e\u73b0\u964d\u5e8f\u6392\u5e8f\uff0c\u9700\u8981\u63d0\u4f9b\u4e00\u4e2a\u5e03\u5c14\u503c\uff1a


123
y = [3, 2, 8 ,0 , 1]y.sort(reverse = True)print y #[8, 3, 2, 1, 0]

sorted\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6392\u5e8f\u7ed3\u679c\u3002\u76ee\u6807list\u672c\u8eab\u4e0d\u53d8

sort\u662flist\u7684\u4e00\u4e2a\u65b9\u6cd5\uff0c\u65b9\u6cd5\u7684\u4f5c\u7528\u662f\u5c06list\u5143\u7d20\u8fdb\u884c\u6392\u5e8f\uff0clist\u7684\u672c\u8eab\u53d1\u751f\u4e86\u6539\u53d8

默认的sort用<比较待排序的各元素,而list1包含子列表,列表与整数不能进行<比较,所以报错。
可以改成:
list1.sort(key=str) #将元素转换成字符串后进行<比较

>>> list1

list1.sort(key=lambda e : e[0] if isinstance(e,list) else e) #子列表按第1个元素与其它整数进行<比较,第1个元素必须是数值

>>> list1

  • 鎬庢牱鐢python灏嗘暟缁閲岀殑鏁颁粠楂樺埌浣庢帓搴
    绛旓細1銆侀鍏堟垜浠畾涔変竴涓垪琛ㄨ緭鍏ヤ竴涓插ぇ灏忎笉涓鐨鏁板瓧銆2銆佸彲浠ョ敤sort()鏂规硶瀵瑰畾涔夌殑鍒楄〃鎺掑簭锛屾敞鎰忥紝sort鍙槸瀵瑰垪琛ㄦ帓搴忥紝瀹冩病鏈夎繑鍥炰竴涓笺3銆佽緭鍏rint鍒楄〃鍚嶅嵆鍙緱鍒版帓搴忓悗鐨勫垪琛ㄦ暟鎹4銆佸掑簭鍙互鐢ㄨ繖涓猺everse鏂规硶锛屾妸鍏冪礌浣嶇疆鍊掕浆杩囨潵銆5銆佺劧鍚庡啀娆rint鍒楄〃鍚嶏紝杩欐牱灏变細寰楀埌鍊掕浆椤哄簭涔嬪悗鐨勫垪琛ㄦ暟鎹5銆...
  • Python閲岀殑sort璇彞
    绛旓細Python涓殑sort()鍑芥暟鏄簭鍒楃殑鍐呴儴鍑芥暟锛屽嚱鏁板師鍨嬶細L.sort(cmp=None, key=None, reverse=False)鍑芥暟浣滅敤锛氬畠鏄妸L鍘熷湴鎺掑簭锛屼篃灏辨槸浣跨敤鍚庡苟涓嶆槸杩斿洖涓涓湁搴忕殑搴忓垪鍓湰锛岃屾槸鎶婂綋鍓嶅簭鍒楀彉寰楁湁搴忋Python涓璼ort()鍙傛暟璇存槑锛(1) cmp鍙傛暟 cmp鎺ュ彈涓涓嚱鏁帮紝鎷挎暣褰妇渚嬶紝褰㈠紡涓猴細def f(a,b):return...
  • 鍦python涓浠ユ煇鍒椾负鍒嗙粍瀵硅薄杩樿兘瀵规煇鍒楄繘琛屼緷娆℃帓搴忓悧
    绛旓細鍦Python瀹為檯寮鍙戜腑锛屼細缁忓父闇瑕佺敤鍒板鍒楄〃杩涜鎺掑簭銆備笅闈㈢珯闀垮湪绾垮鍒楄〃鐨勬帓搴忚瑙e嚑绉嶅父鐢ㄧ殑鏂规硶锛1銆佷娇鐢ㄥ垪琛ㄥ璞鐨剆ort()鏂规硶杩涜鎺掑簭銆傚垪琛ㄥ璞℃彁渚涗簡sort()鏂规硶鐢ㄤ簬瀵瑰師鍒楄〃涓殑鍏冪礌杩涜鎺掑簭銆傛帓搴忎互鍚庯紝鍘熷垪琛ㄤ腑鐨勫厓绱犻『搴忓皢鍙戠敓鏀瑰彉銆傚垪琛ㄥ璞$殑sort()鏂规硶鐨勮娉曟牸寮忓涓嬶細listname.sort(...
  • 鍏充簬Python涓璼ort鏂规硶鐨勪娇鐢ㄦ姤閿
    绛旓細榛樿鐨剆ort鐢<姣旇緝寰呮帓搴忕殑鍚勫厓绱狅紝鑰宭ist1鍖呭惈瀛愬垪琛紝鍒楄〃涓庢暣鏁颁笉鑳借繘琛<姣旇緝锛屾墍浠ユ姤閿欍傚彲浠ユ敼鎴愶細list1.sort(key=str) #灏嗗厓绱犺浆鎹㈡垚瀛楃涓插悗杩涜<姣旇緝 >>> list1 鎴 list1.sort(key=lambda e : e[0] if isinstance(e,list) else e) #瀛愬垪琛ㄦ寜绗1涓厓绱犱笌鍏跺畠鏁存暟杩涜<姣旇緝锛岀1...
  • python涓浠庡ぇ鍒板皬鎺掑簭鐨勫嚱鏁
    绛旓細1銆佺ず渚嬩唬鐮 def bigToSmall(uList):uList.sort()print(uList)uList.sort(reverse=True)print(uList)amn = [34, 56, 78, 12, 31, 45, 67, 77, 35]bigToSmall(amn)2銆佺ず渚嬬粨鏋 [12, 31, 34, 35, 45, 56, 67, 77, 78][78, 77, 67, 56, 45, 35, 34, 31, 12]
  • python涓鐨刲ist鐨剆ort鏂规硶鎬庢牱閫嗗簭杈撳嚭
    绛旓細鏀寔 reverse 鍙傛暟锛岀湅涓嬮潰鐨渚嬪瓙锛屽垎鍒寜鐓ф甯搁『搴 锛堝崌搴忥級鎺掑垪锛屼互鍙婃寜鐓ч嗗簭鎺掑垪銆>>> l = [7, 3, 9, 1, 12, -8]>>> l.sort()>>> l[-8, 1, 3, 7, 9, 12]>>> l = [7, 3, 9, 1, 12, -8]>>> l.sort(reverse=True)>>> l[12, 9, 7, 3, 1, -8]...
  • python鎬庢牱瀵瑰垪琛ㄨ繘琛屾帓搴
    绛旓細棣栧厛锛屾墦寮cmd鍛戒护锛岀劧鍚庤緭鍏python锛屾寜鍥炶溅閿繘鍏ython缁冧範妯″紡銆備箣鍚庯紝瀹氫箟涓涓垪琛ㄣ傚彲浠ョ湅鍒板垪琛ㄦ湁涓浜涙暟鎹紝骞朵笖杩欎簺鏁版嵁鏄棤搴忕殑銆傛帴鐫浣跨敤鍒楄〃鍚.reverse()鏉ヨ皟鐢╮everse鏂规硶锛岀劧鍚庡洖杞︺備箣鍚庯紝鎵撳嵃test閲岄潰鐨勫厓绱犮傚彲浠ョ湅鍒拌皟鐢╮everse鏂规硶涔嬪悗锛屽垪琛ㄩ噷闈㈢殑鍏冪礌閮借鍊掑簭鎺掑簭浜嗐傛帴鐫鍐嶈皟鐢sort鏂规硶锛岃繖涓...
  • python涓杩涜瀛楃涓叉帓搴
    绛旓細python涓娌℃湁鐩存帴鐨勬柟娉曞瀛楃涓茶繘琛屾帓搴忥紝鍘熷洜鏄瓧绗︿覆绫诲瀷鏄笉鍏佽鐩存帴淇敼鍏冪礌鐨勩傚洜姝ゅ瓧绗︿覆鎺掑簭鐨勪富瑕佹柟娉曟槸灏嗗瓧绗︿覆杞崲鎴愬瓧绗︽暟缁勶紝鐒跺悗鍊熺敤sorted鍑芥暟杩涜鎺掑簭锛屾渶鍚庣敤join鏂规硶閲嶆柊鎷艰瀛楃涓层傝緭鍑虹粨鏋 鎴戜滑鍙互浣跨敤sort鏂规硶鍜宻orted鍑芥暟鏍规嵁闀垮害杩涜鎺掑簭锛屾柟娉曟槸灏嗛敭浣滀负鍙傛暟浼犻掔粰鎺掑簭鐨勬柟娉曘傝緭鍑虹粨鏋 ...
  • python閲students.sort(key=lambda x: x['name']),涓や釜x鐨勬剰鎬濇槸浠涔...
    绛旓細鎰忔濇槸杩斿洖瀛楀吀x鐨name閿殑鍊笺傝繖涓唬鐮佺殑鎰忔濆氨鏄寜鍒楄〃涓瘡涓瓧鍏哥殑name閿殑鍗囧簭鏉ュ鍒楄〃鎺掑簭銆傚叾瀹烇紝students.sort(key=lambda x:x['name'])灏辨槸鐩稿綋浜庤繖鏍凤細鍏堝畾涔変竴涓嚱鏁 def k(x):return x['name']key鎸夊叧閿瓧浼犲弬鎺掑簭 students.sort(key=k)...
  • python涓鐨勫垪琛ㄤ腑甯哥敤鐨鏂规硶鏈夊摢浜,鍒嗗埆鏄粈涔堜綔鐢?
    绛旓細浠ヤ笅鏄垪琛ㄦ渶甯哥敤鐨勬柟娉锛1.append() --- 鍚戝垪琛ㄧ殑灏鹃儴娣诲姞鍏冪礌 2.insert(index锛宱bject) --- 鍚戞寚瀹氱殑涓嬫爣澶勬坊鍔犲厓绱 3.sort锛堬級--- 杩涜鎺掑簭锛堜粠涓嬪埌澶 int绫诲瀷锛夊彲浠ュ瀛楁瘝杩涜鎺掑簭锛圓SCII鍊硷級绫诲瀷涓嶈兘娣 4.index锛堬級--- 杩斿洖鐨勬槸鍏冪礌鍦ㄥ垪琛ㄤ腑鐨勭涓涓綅缃 5.reverse锛堬級--- 灏嗗垪琛ㄨ繘...
  • 扩展阅读:python网站 ... python中insert用法 ... python sort key ... python中join的用法 ... python初学编程必背 ... sort函数python是升序吗 ... python中sort和sorted ... python中list的用法 ... python降序排列sort ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网