- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个用 functools.cmp_to_key
包装的比较器函数,这样我就可以在调用 sorted()
时使用它。
问题是我已经在使用 itemgetter
作为 key 。 itemgetter 用于从字典中检索值,该值用于对集合进行排序。
因此,从本质上讲,我需要使用 itemgetter 来检索值,然后我需要使用比较器函数对它们进行正确排序。
我尝试了以下组合,但似乎都不起作用:
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] ) ) )
在不需要特定比较器的情况下,它只是被称为:
results = sorted( data, key=itemgetter( sort_columns[x] ) )
最佳答案
您需要编写 getter 和比较器。效果如下:
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)))
关于带有 itemgetter 和比较器的 Python sorted(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55696005/
在实际情况下可能不是安排数据的最佳方式,但它是一个很好的例子: In [16]: import operator In [17]: DF=pd.DataFrame({'Val1':[[2013, 37
有没有办法使用 itemgetter 获取一组列的补码? 例如,您可以使用 获取列表的第一个、第三个和第五个元素 from operator import itemgetter f = itemget
operator.itemgetter()函数是这样工作的: >>> import operator >>> getseconditem = operator.itemgetter(1) >>> ls
正如屏幕名称所证明的那样,我是 Python 新手。我试图对元组列表进行排序,认为列表中的 (x,y) 对并遇到了问题。我的目标是主要按 x 变量按升序对元组列表进行排序,然后进行排序 我调查了关于
我有一个字典,其中包含人名和股票值(value),我想获取元组组成股票的名称和最大值(value)。这里有一个问题:一些股票值(value)不可用并以 'NaN' 形式插入,因此,我想过滤它们。 ma
from operator import itemgetter from itertools import takewhile xs = [ ('foo',1), ('bar',1), ('baz',
我有以下字典: inventory = {'apple':(3, 133), 'banana':(9, 407), 'pear':(17, 205), 'orange':(1, 91)} 我想根据元组
我有一个要排序的元组列表。元组包含字符串: connectionsList = [('C', 'B'), ('A', 'C'), ('D', 'B'), ('C','D')] 元组中的字符串将数值存储
我注意到 operator.itemgetter 对象没有定义 __eq__,因此它们的比较默认为检查身份(is)。 当两个 itemgetter 实例的初始化参数列表比较相等时,将它们定义为相等有什
如何将 itemgetter 与列表变量而不是整数一起使用?例如: from operator import itemgetter z = ['foo', 'bar','qux','zoo'] id
这是我的词典: a = [{"id":1,"data":{"age":16,"name":a}}, {"id":3,"data":{"age":35,"name":b}}, {"i
我有一本已转换为列表的字典,因此我可以按第一项排序。字典中的键是(数字的)字符串,值是列表中维护的整数。 字典转换的列表如下所示: [('228055', 1), ('228054', 1), ('2
我最近学会了使用ìtemgetter(i)在Python中获取多个列表中的第i个元素。例如: j_column=list(map(itemgetter(j), board[i+1:])) board[
我有一个正在阅读的文件,然后创建了我想要的嵌套列表,然后按 4 元素(邮政编码)排序 jk43:23 Marfield Lane:Plainview:NY:10023 axe99:315 W. 115
我有一个用 functools.cmp_to_key 包装的比较器函数,这样我就可以在调用 sorted() 时使用它。 问题是我已经在使用 itemgetter 作为 key 。 itemgette
我正在尝试根据元素的属性在列表中选择最常见的项目。 a1 = Myclass(name='a') a2 = Myclass(name='a') b1 = Myclass(name='b') l = [
Python 2.7.5 (default, Sep 12 2013, 12:43:04) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type
我刚开始学习 Python 时遇到过这个非常简单的代码无法正确处理: import operator; b=[(5,3),(1,3),(1,2),(2,-1),(4,9)] sorted(b,key=
我很好奇是否有任何迹象表明 operator.itemgetter(0) 或 lambda x:x[0] 哪个更好用,特别是在 sorted() 作为 key 关键字参数,因为这是首先想到的用途。是否
A question was asked here on SO ,几分钟前,关于根据值对字典键进行排序。 几天前我刚刚阅读了关于 operator.itemgetter 排序方法的信息,并决定尝试一下
我是一名优秀的程序员,十分优秀!