Referencia: Cómo ordenar / ordenar tuplas de direcciones IP en pitón

Usado :

sorted(a, key=lambda x: tuple(int(i) for i in x['host'].split('.'))[::-1]) 

Lógica para ordenar una tupla, encontrada con

ValueError: literal no válido para int () con base 10: '' Error,

Amablemente ayúdame

-3
Sujith Kumar 12 oct. 2020 a las 20:30

1 respuesta

La mejor respuesta

Hay algún carácter que no es un dígito o un "." en sus datos de entrada (la matriz a).

No conocemos sus datos de entrada, por lo que no puedo señalar directamente el error, pero parece que uno de los valores en a podría contener la cadena '' Error,.

Esto funciona bien para mí (no da un error):

a=[{'host': u'10.219.1.1'}, {'host': u'10.91.1.1'}, {'host': u'10.219.4.1'}, {'host': u'10.91.4.1'}]

print(sorted(a, key=lambda x: tuple(int(i) for i in x['host'].split('.'))[::-1]) )

Da esta salida:

[{'host': '10.91.1.1'}, {'host': '10.219.1.1'}, {'host': '10.91.4.1'}, {'host': '10.219.4.1'}]

¿Intentaste ejecutar ese código exacto?

0
Jesper 12 oct. 2020 a las 18:00