python - 如何用两个键对 lambda 进行排序?

标签 python dictionary lambda sorting

我在用这个

ThreadList.append([''.join(map(str,[Thread])), date, rrf[5]])

SendThreadList = ''

ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)

sorted 只显示第二个sorted,如何用key中的两个entry sorted ??

最佳答案

如果您想按 Entry[1] 排序,然后按 Entry[2] 排序,那么您可以让 lambda 将两者都作为元组返回...:

ThreadList = sorted(ThreadList, key=lambda Entry: (Entry[1], Entry[2]), reverse=True)

有时更具可读性(并且可能稍微更快)的是使用 operator 模块并使用 key=operator.itemgetter(1, 2)

关于python - 如何用两个键对 lambda 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14186701/

相关文章:

python - Pandas DataFrame 到嵌套 JSON 而不更改数据结构

python - 给定一组字符串,创建一个字典字典,使用它们作为具有默认值的条目的键

python - 将以元组为键的字典转换为包含键和值的元组

java - 使用比较器初始化 PriorityQueue

python - celery worker 在调用 retry() 后不重试任务

python - 如何在 Python (Trello) 中为 POST 函数编写单元测试?

python - 按多个值对字典列表进行排序

Java Lambda - 查找包含 Vector3D 实例的三角形极值的更好方法

c++ - 递归中意外的 std::bad_function_call

python - 您可以在不保存到文件的情况下将视频转换为 python 中的音频文件吗?