Python 在不使用包的情况下,如何按第二个值和第一个值对嵌套列表进行排序?
我有一个成对数字的嵌套列表: >>>l=[[0,0]、[1,3]、[3,2]、[3,4]、[4,6]、[5,2]、[3,1]、[1,6]、[5,4]、[4,3]、[2,5]、[3,0]] 是否可以在不使用包的情况下按第二个术语和第一个术语对列表进行排序? 所需的输出如下: >>>排序两个然后一个 [[0, 0], [3, 0], [3, 1], [3, 2], [5, 2], [1, 3], [4, 3], [3, 4], [5, 4], [2, 5], [1, 6], [4, 6]] 答案如下: 代码 输出Python 在不使用包的情况下,如何按第二个值和第一个值对嵌套列表进行排序?,python,list,Python,List,我有一个成对数字的嵌套列表: >>>l=[[0,0]、[1,3]、[3,2]、[3,4]、[4,6]、[5,2]、[3,1]、[1,6]、[5,4]、[4,3]、[2,5]、[3,0]] 是否可以在不使用包的情况下按第二个术语和第一个术语对列表进行排序? 所需的输出如下: >>>排序两个然后一个 [[0, 0], [3, 0], [3, 1], [3, 2], [5, 2], [1, 3], [4, 3], [3, 4], [5, 4], [2, 5], [1, 6], [4, 6]] 答案如下
似乎是一个复制品 sortedl,key=lambda x:x[1],x[0] >>> [[0, 0], [3, 0], [3, 1], [3, 2], [5, 2], [1, 3], [4, 3], [3, 4], [5, 4], [2, 5], [1, 6], [4, 6]]
可以使用sorted的可选键参数并实现lambda函数。这些都是python的内置方法。另见 输出 [0,0],[3,0],[3,1],[3,2],[5,2],[1,3],[4,3],[3,4],[5, 4] ,[2,5],[4,6],[1,6]] [程序完成]
你所说的包是什么意思?@DaniMesejo:就像不使用运算符模块一样。@Hiwafreak:你试过什么吗?这不是按第一个术语排序的。结果不等于所需的输出。@LydiavanDyke是否与所需的输出完全匹配?最后一项应为[4,6]。你的是[1,6]。你必须滚动到最后。这个问题在第二个任期和第一个任期内都清楚地说明了这一点。这个例子本可以选择更友好一点的:你是对的!!虽然这样做有效,但列表需要排序两次。一次调用sorted可以按多个索引进行排序。
lst = [[0, 0], [1, 3], [3, 2], [3, 4], [4, 6], [5, 2], [3, 1], [1, 6], [5, 4], [4, 3], [2, 5], [3, 0]]
sorted_list = sorted(sorted(lst, key=lambda x: x[0]), key=lambda x: x[1])
print(sorted_list)
[[0, 0],
[3, 0],
[3, 1],
[3, 2],
[5, 2],
[1, 3],
[4, 3],
[3, 4],
[5, 4],
[2, 5],
[1, 6],
[4, 6]]
a=[[0, 0], [1, 3], [3, 2], [3, 4], [4, 6], [5, 2], [3, 1], [1, 6], [5, 4], [4, 3], [2, 5], [3, 0]]
print(sorted(a, key = lambda x: x[1]))