亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按內部數組的長度降序對二維數組進行排序?

按內部數組的長度降序對二維數組進行排序?

明月笑刀無情 2023-11-09 21:53:55
有沒有一種非常Python式的方法來按內部數組的長度對二維數組進行排序?例如轉動這個:[][[23, 70, 90]][[23, 70, 90], [48, 56, 99]][[23, 70, 90], [48, 56, 99], [79, 89, 91]][[23, 70, 90], [79, 89, 91]][[48, 56, 99]][[48, 56, 99], [79, 89, 91]][[79, 89, 91]]進入:[[23, 70, 90], [48, 56, 99], [79, 89, 91]][[23, 70, 90], [48, 56, 99]][[23, 70, 90], [79, 89, 91]][[48, 56, 99], [79, 89, 91]][[23, 70, 90]][[48, 56, 99]][[79, 89, 91]][]當然有一行代碼可以做到這一點嗎?
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

肯定有!Python 的排序有一個key可選參數,它允許傳入一個函數來操作并返回列表中每個項目的一些修改版本以用于排序。


冗長但易于閱讀的方法是定義一個函數并將其傳遞給它:


def x(e):

    return len(e)


my_list.sort(key=x)

但單行方法是使用 lambda(完整的工作示例在下面):


l = [[],

[[23, 70, 90]],

[[23, 70, 90], [48, 56, 99]],

[[23, 70, 90], [48, 56, 99], [79, 89, 91]],

[[23, 70, 90], [79, 89, 91]],

[[48, 56, 99]],

[[48, 56, 99], [79, 89, 91]],

[[79, 89, 91]]]


def print_arr(a):

    for x in a:

        print(x)


print_arr(l)


# here she is!

l.sort(key=lambda x: len(x)) # add the optional 'reverse=True' param if desired


print_arr(l)


查看完整回答
反對 回復 2023-11-09
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號