Re: [問題] 關於list排序
※ 引述《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)
推
06/06 11:05, , 1F
06/06 11:05, 1F
推
06/06 20:39, , 2F
06/06 20:39, 2F
討論串 (同標題文章)