Инвертировать только цифры из файла - PullRequest
0 голосов
/ 20 мая 2019

Как я могу изменить только номер, а не текст из этого?

datas.txt
Bungo Charlie
Bungo Echo
Bungo Bravo
Bungo Tango
Bungo Alpha
with open('datas.txt', 'r') as f:
    for i, line in enumerate(f):
        print('{}. {}'.format(i+1, line.strip()))

Expectation:

5. Bungo Charlie
4. Bungo Echo
3. Bungo Bravo
2. Bungo Tango
1. Bungo Alpha

Что я получил:

1. Bungo Charlie
2. Bungo Echo
3. Bungo Bravo
4. Bungo Tango
5. Bungo Alpha

1 Ответ

0 голосов
/ 20 мая 2019

Простое использование функции reversed() перевернет все:

for i, line in reversed(list(enumerate(f))

Если вы хотите изменить только цифры, вы можете сделать это выборочно (но беспорядочно) следующим образом:

reversed(list(enumerate(reversed(f))))

Если вы хотите что-то более чистое, вы можете определить функцию, используя zip():

def reverse_enumerate(x):
    return zip(reversed(range(len(x))), reversed(x))
...