Python 对列表的列表进行排序,最后一个位置为 0
Python sorting a list of lists ascending with 0 at the last place
有,在Python2.x
x = [
[0,0,0],
[1,2,3],
[150,400,200],
[0,0,0],
[225,100,150]
]
我该怎么做才能使 x 变成
[
[1,2,3],
[225,100,150],
[150,400,200],
[0,0,0],
[0,0,0],
]
按 x[i][2]
升序排列,最后是 0?
这可能是:
sorted(t, key=lambda x: x[2] if x[2] > 0 else float('inf'))
x.sort(key=lambda y: (y[2] == 0, y[2]))
有,在Python2.x
x = [
[0,0,0],
[1,2,3],
[150,400,200],
[0,0,0],
[225,100,150]
]
我该怎么做才能使 x 变成
[
[1,2,3],
[225,100,150],
[150,400,200],
[0,0,0],
[0,0,0],
]
按 x[i][2]
升序排列,最后是 0?
这可能是:
sorted(t, key=lambda x: x[2] if x[2] > 0 else float('inf'))
x.sort(key=lambda y: (y[2] == 0, y[2]))