我有两个列表:结果、发生时间 我想根据发生的时间对它们进行排序
这些是列表的打印输出:
result is ['3 - 1', '1 - 2', '0 - 0', '2 - 1', '2 - 3', '2 - 0' ...]
occurredtimes is [322 , 423, 269, 643, 114, 565 ...]
我需要的输出是
result ['2 - 1', '2 - 0', '1 -2', '3 - 1', '0 - 0', '2 - 3' ...]
occurredtimes [643 , 565, 423, 322, 269, 114 ...]
我试图把它们分类,但我无法得到我需要的;对不起,我相信这是一个简单的代码
我试了以下方法
result, occurredtimes = (list(t) for t in zip(*sorted(zip(result, occurredtimes))))
您可以使用sorted()并传递lambda函数来根据发生时间对它们进行排序
您还可以使用list的sort函数,并将相同的lambda函数作为参数传递。那就行了
欲知详情12
其工作方式是,您基本上可以
zip
按元素将列表组合在一起。然后,您可以根据来自occurredtimes
的[1]
元素进行排序,并使用reverse=True
进行降序排序最后一个
zip(*sorted(
是再次将已排序的元组解压回两个单独的列表中尝试:
产出:
相关问题 更多 >
编程相关推荐