看板 Python 關於我們 聯絡資訊
※ 引述《dotwsc (海上生明月)》之銘言: : ※ 引述《lauer (Enjoy it)》之銘言: : : 想請教關於 list 型態排序 : : 今天如果是二維的 list : : p = [ [1,3,5], : : [6,4,2], : : [9,4,3]] : : 若 p.sort() 則會根據每一列的第一行比大小 : : 請問有辦法能指定 要比的"行"嗎? : : 謝謝大家! : 不知道這是不是你要的? : [[1, 3, 5], [6, 4, 2], [9, 4, 3]] : [[6, 4, 2], [9, 4, 3], [1, 3, 5]] 用 cmp 比較慢,而且 cmp 已經被 Python 3.0 淘汰了。 如果要依第二個元素大小排序的話 def my_key(item): return item[1] p.sort(key=my_key) 如果要依第二個第三個第一個元素大小排序的話 def my_key(item): return (item[1], item[2], item[0]) p.sort(key=my_key) 如果不想定義函式,可用 lambda 或是 from operator import itemgetter p.sort(key=itemgetter(1,2,0)) 更詳細的內容可以參見拙著 http://descriptor.blogspot.com/2008/12/python-idiom-sort.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.167.123 ※ 編輯: cakewalks 來自: 140.117.167.123 (06/05 20:52)
gardenest:推 06/06 11:05
lauer:感謝分享 謝謝!!~ 06/06 20:39