仅反转文件中的数字

Reverse only numbers from file

如何只反转数字而不反转文本?

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()))

期望值:

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

只需使用 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))