RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону

Почему съезжает последний элемент?

написал костыль для выравнивания контента при нумерации
вот так
1.  beluga — копия (10)
2.  beluga — копия (11)
3.  beluga — копия (12)
4.  beluga — копия (13)
5.  beluga — копия (2)
6.  beluga — копия (3)
7.  beluga — копия (4)
8.  beluga — копия (5)
9.  beluga — копия (6)
10. beluga — копия (7)
11. beluga — копия (8)
12. beluga — копия (9)
13. beluga — копия
14. beluga
но почему-то всегда съезжает последний элемент. В чем дело? Куда девается пробел который прописан вне {}?
выходит вот так
1.  beluga — копия (10)
2.  beluga — копия (11)
3.  beluga — копия (12)
4.  beluga — копия (13)
5.  beluga — копия (2)
6.  beluga — копия (3)
7.  beluga — копия (4)
8.  beluga — копия (5)
9.  beluga — копия (6)
10. beluga — копия (7)
11. beluga — копия (8)
12. beluga — копия (9)
13. beluga — копия
14.beluga


код
for i, filename in enumerate(filenames):
        m += f'\n`{i+1}.{" "*(len(str(len(filenames)))-len(str(i+1)))} ``{filename}`'

в файлнеймс ->
['beluga', 'beluga - копия', 'beluga - копия (1)', ...]
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
" "*(len(str(len(filenames)))-len(str(i+1)))
1. Открой для себя переменное выравнивание в форматировании
2. Открой для себя join()
3. Открой для себя второй параметр enumerate()

max_index_len = len(str(len(filenames)))
m = '\n'.join([
    f"{i:>{max_index_len}}. {filename}" 
    for i, filename in enumerate(filenames, 1)
])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы