首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python使用itemgetter和比较器进行排序()

Python使用itemgetter和比较器进行排序()
EN

Stack Overflow用户
提问于 2019-04-15 19:24:21
回答 1查看 151关注 0票数 2

我有一个比较函数,正在用functools.cmp_to_key包装,以便在调用sorted()时可以使用它。

问题是,我已经使用itemgetter作为关键。itemgetter用于从字典中检索值,而这个值是用来对集合进行排序的。

因此,本质上,我需要使用itemgetter来检索这些值,然后我需要使用比较器函数对它们进行适当的排序。

我尝试过以下几种组合,但似乎没有一种有效:

代码语言:javascript
复制
for x in range( 0, len(sort_columns) ):
  comparer = cmp_to_key(sort_columns[x].sort_func)
  results = sorted( data, key=comparer )
  results = sorted( data, key=comparer(itemgetter( sort_columns[x] ) ) )
  results = sorted( data, key=itemgetter( comparer( sort_columns[x] ) ) )

在不需要特定比较器的情况下,只将其称为:

代码语言:javascript
复制
results = sorted( data, key=itemgetter( sort_columns[x] ) )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-15 19:47:38

你需要组成吸气器和比较器。具有以下效果的事物:

代码语言:javascript
复制
for columns in sort_columns: # don't use a range loop unless you need to
    comparer = cmp_to_key(columns.sort_func)
    getter = itemgetter(columns)
    data = sorted(data, key=lambda x: comparer(getter(x)))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55696005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档