【发布时间】:2021-03-25 06:47:29
【问题描述】:
一个示例问题。实际问题使用日期时间,但这简化了这个例子
unordered_list = [Class(letter='A', value=5),
Class(letter='B', value=3),
Class(letter='C', value=2),
Class(letter='D', value=8),
Class(letter='E', value=5),
Class(letter='F', value=8)]
sorted_list = fun(unordered_list)
expected_result = [Class(letter='C', value=2),
Class(letter='B', value=3),
(Class(letter='A', value=5), Class(letter='E', value=5)),
(Class(letter='D', value=8), Class(letter='F', value=8))]
# or
expected_result = [(Class(letter='C', value=2)),
(Class(letter='B', value=3)),
(Class(letter='A', value=5), Class(letter='E', value=5)),
(Class(letter='D', value=8), Class(letter='F', value=8))]
我真的不介意它们的格式; list、set、tuple 我不挑剔。
我自己在下面回答了这个问题。但是我认为有一种更快或更pythonic的方法。
如果你想运行示例问题,需要额外的代码
class Class:
def __init__(self, letter, value):
self.letter = letter
self.value = value
def __str__(self):
return self.letter+'->'+str(self.value)
python 排序方法 (sorted(unordered_list, key=lambda x: x.value)) 确实不能自行解决这个问题,因为相同值的项目没有被分组
【问题讨论】:
-
python 排序方法(sorted(unordered_list, key=lambda x: x.value)) 本身并不能解决这个问题,因为相同值的项目没有分组
-
经过更多搜索后,我相信这篇帖子stackoverflow.com/a/6602441 可能是我正在寻找的答案。此问题已关闭,因此我无法发布该答案
标签: python-3.x sorting