Estoy trabajando con algunos comparadores preexistentes que comparan ciertos valores en dos tuplas y devuelven verdadero si el primero es mayor que el segundo, falso si no es así. Aquí está el código para uno de ellos:Usando una función de comparación para ordenar
def cmpValue(subInfo1, subInfo2):
"""
Returns True if value in (value, work) tuple subInfo1 is GREATER than
value in (value, work) tuple in subInfo2
"""
# TODO...
if subInfo1[0] > subInfo2[0]:
return True
else:
return False
Ahora, tengo un diccionario que tiene numerosas entradas de tuplas del tipo que se comparan anteriormente. Quiero ordenarlos todos en orden inverso, pero realmente no entiendo cómo lo lograría. Estaba pensando en algo como:
sortedDict = sorted(subjects, key=comparator, reverse = True)
Pero no sé qué pasa en el comparador, porque cada comparador toma dos argumentos (subInfo1, subInfo2). No puedo cambiar las funciones del comparador.
funciones de comparación son desaprobado en Python; use funciones clave en su lugar. –
'if condición: return True else: return False' debe ser' return condition'. –
Los diccionarios no conservan el orden. Si desea un diccionario ordenado, debe usar 'OrderedDict' del módulo de colecciones. – Matt