Как преобразовать список str в список целых? - PullRequest
0 голосов
/ 13 января 2020

Я хочу преобразовать данный вход в список целых. Я не могу использовать: для, пока, сумма, сопоставить, уменьшить, фильтровать, импортировать, eval, сортировать, exe c, скомпилировать и сингл. Вот что я написал:

def convert_int(my_line):
    i = len(my_line) - 1

    if i == 0:
        return int(my_line[0])
    else:
        return [int(my_line[i]), convert_int(my_line[:i])]

line = input().split()

print(convert_int(line))

С вводом:

1 2 3 4 5

Вывод:

[5, [4, [3, [2, 1]]]]

Как это сделать?

Ответы [ 2 ]

1 голос
/ 13 января 2020

Вам нужно объединить два списка, а не вставлять рекурсивный результат в список.

def convert_int(my_line):
    if not my_line:
        return []
    else:
        return [int(my_line[0])] + convert_int(my_line[1:])
0 голосов
/ 13 января 2020

Другое решение (без, пока, сумма, отображение, уменьшение, фильтрация, импорт, оценка, сортировка, exe c, компиляция и одиночное, как указано в вопросе):

line = '1 2 3 4 5'

line = line.split()
i = iter(line)
line[:] = iter(lambda: int(next(i)), None)
print(line)

Печать :

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