从不同的行(从文件输入库)交换数字,而不使用临时变量

时间:2019-03-06 01:12:44

标签: python swap

我知道有类似的帖子。但是它们似乎都不处理文件输入库中的输入。我最大的问题是,我不知道如何在不分配临时变量的情况下处理从for循环生成的每个line

我在做一个代码练习问题,要求是“编写一个函数以使用任何临时变量交换 个数字。”

我得到的开始这个问题的代码是:

import fileinput
import sys

for line in fileinput.input():

我知道在python中,交换数字可以像x,y = y,x一样容易,或者可以是:

x = x^y
y = x^y
x = x^y

但是如果这里没有分配xy怎么办?

到目前为止,我的解决方案是:

import fileinput
import sys

l = []

for line in fileinput.input():
    l.append(line)
l = l[::-1]
for e in l:
    print(e)

但是我不确定是否通过引入l违反了规则。

输入示例:

5
10

预期输出:

10
5

1 个答案:

答案 0 :(得分:0)

这对我有用。他们没有说不写临时文件,对吗? :)

import fileinput
import os
import sys

l = []

for line in fileinput.input():
    open('test.txt', 'a').write(line)
print('\n'.join(open('test.txt').read().split('\n')[-2::-1]))