我做了一个[[name, score]]
类似的嵌套列表[['Ashish', 32], ['Varsha', 32], ['Nano', 31.9], ['Sparsh', 40.3], ['Ria', 30.2]]
,我想对这个列表进行排序。数字。
a['score'].sort(reverse = True)
我尝试了上面的代码,但是它给出了这个错误,
TypeError: list indices must be integers or slices, not str
我应该怎么做?
基本上是@AndreyKesley所说的。
您的嵌套列表不是以“得分”作为一列名称的二维列表。它是列表的列表,您不能只抓住第二列。
但是,您可以按每个元素的第二项进行排序:
a = [['Ashish', 32], ['Varsha', 32], ['Nano', 31.9], ['Sparsh', 40.3], ['Ria', 30.2]]
a.sort(key=lambda el: el[1], reverse=True)
print(a)
[['Sparsh',40.3],['Ashish',32],['Varsha',32],['Nano',31.9],['Ria',30.2]]
或更不含lambda的新手友好版本:
import operator
a = [['Ashish', 32], ['Varsha', 32], ['Nano', 31.9], ['Sparsh', 40.3], ['Ria', 30.2]]
a.sort(key=operator.itemgetter(1), reverse=True)
print(a)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句