我需要帮助按整数排序嵌套循环并显示它们

时间:2016-02-10 22:31:36

标签: python list nested integer

我需要帮助按其中的特定整数排序嵌套列表,首先我按每个列表中的数字顺序排序,例如[['Bob',[3,2,1]],['Kate',[5,4,3]]]

但是现在我需要根据每个对象的第一个数字从最高到最低来命令列表中的每个对象(列表),例如:`[[' Bob',[3,2, 1]],

然后我需要打印出每个数字列表中带有名称的最高数字。

3 个答案:

答案 0 :(得分:1)

>>> sorted( [['Bob',[3,2,1]],['Kate',[5,4,3]],['Jim',[4,3,2]]], key=lambda l:-l[1][0])
[['Kate', [5, 4, 3]], ['Jim', [4, 3, 2]], ['Bob', [3, 2, 1]]]

然后按照你的描述打印:

>>> li=[['Bob',[3,2,1]],['Kate',[5,4,3]],['Jim',[4,3,2]]]
>>> ["{}: {}".format(n, max(sl)) for n, sl in sorted(li, key=lambda l:l[1][0], reverse=True)]
['Kate: 5', 'Jim: 4', 'Bob: 3']

答案 1 :(得分:0)

你可能想在python和key参数中查找sort函数。

myList = [['Bob',[3,2,1]],['Kate',[5,4,3]],['Jim',[4,3,2]]]
myList.sort(key= lambda x: x[1], reverse=True)
print myList 

[['Kate', [5, 4, 3]], ['Jim', [4, 3, 2]], ['Bob', [3, 2, 1]]]

答案 2 :(得分:0)

是的,这是可能的:

data = [['Bob',[3,2,1]],['Kate',[5,4,3]],['Jim',[4,3,2]]] 

print sorted(data,key=lambda x: x[0][1])

这里x [0] [1]指向要对其进行排序的值,在本例中是数组的第一个数字。这假设数字数组已经排序 代码打印:

[['Kate', [5, 4, 3]], ['Jim', [4, 3, 2]], ['Bob', [3, 2, 1]]]