仅反转文件中的数字
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))
如何只反转数字而不反转文本?
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))