compare dos cadenas de Python que contienen números

UPDATE: debería haber especificado esto antes, pero no todos los nombres son simplemente flotantes. Por ejemplo, algunos de ellos están "prefijados" con "YT". Entonces, por ejemplo, "YT1.1. Entonces, tiene el mismo problema YT1.9 <YT1.11 debería ser cierto. Estoy realmente sorprendido de que la comparación de cadenas falle ...

Hola, esta debería ser una pregunta bastante simple, pero parece que no puedo encontrar la respuesta. Me gustaría ordenar un montón de hojas de trabajo XL por nombre. Cada uno de los nombres son números, pero de la misma manera que las "secciones" de los libros de texto están numeradas, lo que significa que la sección 4.11 viene después de 4.10, ambas después de 4.9 y 4.1. Pensé que simplemente comparar estos números como una cadena sería suficiente, pero obtengo lo siguiente:

>>> s1 = '4.11'
>>> s2 = '4.2'
>>> s1> s2
False
>>> n1 = 4.11
>>> n2 = 4.2
>>> n1 > n2
False

¿Cómo puedo comparar estos dos valores de modo que 4.11 sea mayor que 4.2?

Respuestas a la pregunta(5)

Su respuesta a la pregunta