Поменяйте местами номера из разных строк (из библиотеки fileinput) без использования временных переменных - PullRequest
1 голос
/ 06 марта 2019

Я в курсе, что есть похожие посты. Но ни один из них, похоже, не имеет дело с вводом из библиотеки ввода файлов. Моя самая большая проблема заключается в том, что я не знаю, как обрабатывать каждый line, сгенерированный из цикла for, без назначения временной переменной.

Я делаю вопрос практики кода, где требование состоит в том, чтобы «написать функцию для замены двух чисел без с использованием любых временных переменных».

И код, который мне дали для начала вопроса:

import fileinput
import sys

for line in fileinput.input():

Я знаю, что в python обмен числами может быть таким же простым, как x,y = y,x, или может быть:

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

Но как я могу это сделать, если здесь не назначено x или y?

Мое решение пока таково:

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 голосов
/ 06 марта 2019

Это работает для меня.Они ничего не сказали о том, что не записали во временный файл, верно?:)

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]))
...