gpt4 book ai didi

Python自定义排序

转载 作者:太空宇宙 更新时间:2023-11-04 01:00:35 25 4
gpt4 key购买 nike

我有一个要排序的字典对象列表(从 csv 读取)。例如

l_data.sort(key=lamdba x: (x['fname'], x['lname']))

现在我想使代码更灵活,并希望根据输入对键进行排序,例如:

def sort_data(l_data, keys):
l_data.sort(key=lambda x: (x[d] for d in keys))
... ...

我收到以下错误:

TypeError: unorderable types: generator() < generator()

最佳答案

(x[d] for d in keys) 是一个生成器表达式(生成 generator 对象)。如果你想创建一个元组,用 tuple(...) 包装那个生成器表达式:

def sort_data(l_data, keys):
l_data.sort(key=lambda x: tuple(x[d] for d in keys))
# code

尽管使用 operator.itemgetter 可以大大简化您的代码:

from operator import itemgetter

def sort_data(l_data, keys):
l_data.sort(key=itemgetter(*keys))
# code

关于Python自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33042790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com