Sort Tuples Python

自古美人都是妖i 提交于 2019-12-18 12:51:27

问题


I have a list of tuples in my Blender python code

scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]

I'm trying to sort them by their score by using this

sorted(scores, key=lambda score: score[0], reverse=True)

but this is not working. I have no idea why. Any tips?

I've considered maybe a better implementation is to create a new Score class with fields name and score

EDIT:

Thanks guys for the fast reply

it was giving me no errors with the sorted method but was not sorting. I used the sort() and it works.

I think python is just a little weird in Blender maybe?

Thanks!


回答1:


Just do:

print sorted(scores, reverse=True)
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]

you can use scores.sort(reverse=True) if you want to sort in place, and by the way the sort function in case of list of tuple by default sort by first item , second item ..




回答2:


sorted() returns the sorted sequence. If you want to sort a list in place then use list.sort().




回答3:


scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]


来源:https://stackoverflow.com/questions/6372198/sort-tuples-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!