2024-10-06 15:16:46 发布
网友
我有以下格式的列表:
[['a',[10]], ['b',[1]], ['c',[5,10]], ['d',[5,1,-10]], ['e',[5,1,-1]]]
我想在python中使用numeric list元素,匹配第一个元素,当它相同时,使用第二个元素,依此类推。 结果是这样的(这次我需要倒序):
谢谢!在
>>> from operator import itemgetter >>> L=[['a',[10]], ['b',[1]], ['c',[5,10]], ['d',[5,1,-10]], ['e',[5,1,-1]]] >>> sorted(L, key=itemgetter(1), reverse=True) [['a', [10]], ['c', [5, 10]], ['e', [5, 1, -1]], ['d', [5, 1, -10]], ['b', [1]]] >>>
我在这里使用itemgetter(1),它大致相当于其他答案中的lambda函数。由于子列表是条目号1,所以这可以有效地执行排序。(项目编号0为字母a-e)
我想列表比较就像你想要的,如果倒过来的话:
>>> data = [['a',[10]], ['b',[1]], ['c',[5,10]], ['d',[5,1,-10]], ['e',[5,1,-1]] >>> sorted(data, reverse = True, key = lambda pair: pair[1]) [['a', [10]], ['c', [5, 10]], ['e', [5, 1, -1]], ['d', [5, 1, -10]], ['b', [1]]]
您的输入列表中有一个括号错误,它已在上面的代码中修复。在
使用key选择列表中的第二个元素,使用reverse更改方向:
key
reverse
>>> l=[['a',[10]], ['b',[1]], ['c',[5,10]], ['d',[5,1,-10], ['e',[5,1,-1]]] >>> sorted(l, key=lambda e:e[1], reverse=True) [['a', [10]], ['c', [5, 10]], ['e', [5, 1, -1]], ['d', [5, 1, -10]], ['b', [1]]]
列表是通过按顺序比较元素来排序的,就像词典或常规词典一样。这叫做“词法比较”。在
我在这里使用itemgetter(1),它大致相当于其他答案中的lambda函数。由于子列表是条目号1,所以这可以有效地执行排序。(项目编号0为字母a-e)
我想列表比较就像你想要的,如果倒过来的话:
您的输入列表中有一个括号错误,它已在上面的代码中修复。在
使用
key
选择列表中的第二个元素,使用reverse
更改方向:列表是通过按顺序比较元素来排序的,就像词典或常规词典一样。这叫做“词法比较”。在
相关问题 更多 >
编程相关推荐