1 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
肯定有!Python 的排序有一個(gè)key可選參數(shù),它允許傳入一個(gè)函數(shù)來(lái)操作并返回列表中每個(gè)項(xiàng)目的一些修改版本以用于排序。
冗長(zhǎng)但易于閱讀的方法是定義一個(gè)函數(shù)并將其傳遞給它:
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)
添加回答
舉報(bào)