我有一个比较函数,正在用functools.cmp_to_key包装,以便在调用sorted()时可以使用它。
问题是,我已经使用itemgetter作为关键。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] ) )发布于 2019-04-15 19:47:38
你需要组成吸气器和比较器。具有以下效果的事物:
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)))https://stackoverflow.com/questions/55696005
复制相似问题