Использование STDIN для ввода списка и вывода подсписка - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать функцию, которая будет возвращать подсписок чисел в диапазоне (от начала до конца) из списка, используя STDIN.

Однако я сталкиваюсь с парой проблем и могукажется, не решать их, так как мне нужно использовать список целых чисел.Это код, который я пытаюсь реализовать.

import sys

def algo(list1, xs, xf):
    for x in list1:
      if x>=xs or x<=xf:
      print(x)

list1 = sys.stdin.readline().strip().split(" ")
xs = sys.stdin.readline().strip().split(" ")
xf = sys.stdin.readline().strip().split(" ")

algo(list1, xs, xf)

Используя этот подход и используя ввод 1 2 3 40 50 90 100, начиная с 3 и заканчивая 100, я получаю

TypeError: '>=' not supported between instances of 'str' and 'list'

Если я сделаю все stdins int (), как в

list1 = sys.stdin.readline().strip().split(" ")
xs = int(sys.stdin.readline().strip().split(" "))
xf = int(sys.stdin.readline().strip().split(" "))

, я все равно получу

TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

Так что я не могу преобразовать список в int.Однако мне нужно использовать stdin для моего приложения.Как мне решить эту проблему?

1 Ответ

0 голосов
/ 27 февраля 2019

Я придумал простой пример, чтобы вы начали.Это может потребовать некоторых корректировок.См. Ниже:

lastValue = -1
for x in list1:
  for y in xs:
    for z in xf:
      if x != lastValue and (x >= y or x <= z):       
        print(x)
        lastValue = x

Ваша проблема в том, что вы вообще не просматриваете списки xs или xf.Вложенный цикл должен помочь, иначе вы не сможете сравнить каждое значение в list1 с каждым значением в xs или xf.

Я использую переменную lastValue, чтобы избежать печати дубликатов.В этом примере предполагается, что все мои списки содержат целые числа, для работы с вашим кодом вам может потребоваться привести значения x, y и z к int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...