【发布时间】:2017-08-03 18:42:56
【问题描述】:
我有一长串元组:
[...
(0.862, 'beehive', 'bug'),
(0.12, 'yard', 'property'),
(0.0, 'lake', 'mailbox'),
(0.37, 'maintenance', 'shears'),
(0.1666, 'summer', 'popsicle'),
(0.9, 'poplar', 'tree')
...]
我需要按浮点值降序对该列表进行排序。我知道 Python 会自动按第一个值对列表进行排序,但是即使我调用 sorted 甚至明确指定第一个元素,我也没有成功。
sorted(mylist) # doesn't sort the list at all
sorted(mylist, key = x[0]) # on this sort attempt I get "'str' object is not callable"
任何人都可以详细说明为什么尽管进行了这些排序尝试,列表仍然杂乱无章,以及什么可能按浮点数降序排序?
【问题讨论】:
-
sorted(..)返回一个新列表。 -
... 对于降序你想要
reverse=True... -
关于
key不起作用:您需要提供一个可调用对象,如下所示:key=lambda x: x[0]或key=itertools.itemgetter(0)
标签: python list sorting floating-point tuples