[英]sort nested list data in python
我正在尝试在 python(3.8.5) 中对嵌套列表进行排序。 我有一个像 -
[['1', 'A', 2, 5, 45, 10],
['2', 'B', 8, 15, 65, 20],
['3', 'C', 32, 35, 25, 140],
['4', 'D', 82, 305, 75, 90],
['5', 'E', 39, 43, 89, 55],
]
我想这样排序-
[['4', 'D', 82, 305, 75, 90],
['5', 'E', 39, 43, 89, 55],
['3', 'C', 32, 35, 25, 140],
['2', 'B', 8, 15, 65, 20],
['1', 'A', 2, 5, 45, 10],
]
它已按索引为 2 的列排序。根据索引,它更像这样。 从索引 2 开始,依此类推。 我的意思是它已按列排序。 我可以这样做吗?
如果你想对这样的列表进行排序,只需给sorted
一个键:
sorted_list = sorted([['1', 'A', 2, 5, 45, 10],
['2', 'B', 8, 15, 65, 20],
['3', 'C', 32, 35, 25, 140],
['4', 'D', 82, 305, 75, 90],
['5', 'E', 39, 43, 89, 55]], key=lambda lst: lst[2], lst[1], ....)
对于数值,您甚至可以包含一个负号 ( -lst[1]
) 来反转单个列的顺序
尝试这个:
lst = [['1', 'A', 2, 5, 45, 10],
['2', 'B', 8, 15, 65, 20],
['3', 'C', 32, 35, 25, 140],
['4', 'D', 82, 305, 75, 90],
['5', 'E', 39, 43, 89, 55],
]
lst = sorted(lst, key=lambda x: x[2], reverse=True)
print(lst)
def Sort(sub_li):
# reverse = None (Sorts in Ascending order)
# key is set to sort using second element of
# sublist lambda has been used
sub_li.sort(key = lambda x: x[2],reverse=True)
return sub_li
# Driver Code
sub_li =[['1', 'A', 2, 5, 45, 10],
['2', 'B', 8, 15, 65, 20],
['3', 'C', 32, 35, 25, 140],
['4', 'D', 82, 305, 75, 90],
['5', 'E', 39, 43, 89, 55],
]
print(Sort(sub_li))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.