У меня есть ряд каталогов, которые все с именем в качестве значения с плавающей точкой, например:Python элегантный способ сортировки числовую названные каталоги
0
1
2
2.5
6
6.1
10
Я хотел бы получить последний (самый высокий) пронумерованный каталог. Используя метод сортировки() в именах каталогов (которые строка), я получаю 10 непосредственно после 1
dirs = os.listdir(path)
dirs.sort()
Это дает приказ:
0
1
10
2
2.5
6
6.1
я могу поместить их в список поплавков путем кастования каждого поплавка и последующего упорядочения списка, что решает проблему упорядочения. Но тогда, когда я возвращаю значение строки, я получаю 10.0, что не является именем каталога. Мне нужно, чтобы оно было точно «10» (или как бы ни назывался последний каталог).
Есть ли элегантный способ сделать это?
Если вам не интересно иметь отсортированный список в конце, вы можете просто использовать max встроенный таким же образом; 'max (os.listdir (path), key = float)' - он все равно будет сортировать их в фоновом режиме, но вы можете предпочесть его внешний вид. – LexyStardust
@LexyStardust он не будет сортировать их, он сделает один проход. –
@PeterWood О, да, конечно, вы правы. Можете выходить и быть лучшим решением, если впоследствии вас не интересует отсортированный список. – LexyStardust