从不同行(来自fileinput库)交换数字而不使用临时变量

问题描述 投票:1回答:1

我知道有类似的帖子。但它们似乎都没有处理来自文件输入库的输入。我最大的问题是我不知道如何处理从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
python swap
1个回答
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]))
© www.soinside.com 2019 - 2024. All rights reserved.