Форум сайта python.su
0
Как реализовать ввод списка заданного размера в одну строчку?
Т.е сначала вводится размер списка: 4
Затем считывается строчка со всеми эл-ми этого списка: 1, 2, 3, 4
Отредактировано Fronior (Май 21, 2017 17:05:04)
Офлайн
221
сперва считываете размер списка, затем в цикле считыаете значения и добавляете в список
Офлайн
0
Вы не могли бы предоставить код для наглядности?
Заранее большое спасибо
Офлайн
20
FroniorВот так, я думаю, вполне наглядно:
Вы не могли бы предоставить код для наглядности?
# Создаем пустой список, куда будем добавлять считываемые значения lst = [] size = int(input("Введите размер списка: ")) for i in range(size): elem = int(input("Введите {}-й элемент списка: ".format(i+1))) lst.append(elem) #добавляем в список print(lst)
Офлайн
0
Тут-то и дело в том, что все элементы списка должны считываться в одну строчку.
Т.е на ввод программа получает: 1 2 3 4 5
И создает список ''
Отредактировано Fronior (Май 21, 2017 18:02:59)
Офлайн
20
Тогда тоже все очень просто:
lst = input("Введите список в одну строчку: ") # например, 1 2 3 4 5 result = [int(elem) for elem in lst.split()] print(result)
Отредактировано old_monty (Май 21, 2017 18:23:30)
Офлайн
221
old_monty
Вы забыли про заранее заданнную длину списка
Офлайн
20
JOHN_16
Длину списка можно запрашивать, как уже было показано в моем первом ответе, и проверять, прежде чем генерировать список.
Можно проверять введенную длину списка и в самом генераторе:
>>> size = int(input("Введите длину списка: ")) Введите длину списка: 5 >>> lst = input("Введите список из {} элементов в одну строчку: ".format(size)) Введите список из 5 элементов в одну строчку: 11 12 13 14 15 >>> result = [int(elem) for elem in lst.split() if len(lst.split()) == size] >>> print(result) [11, 12, 13, 14, 15]
Отредактировано old_monty (Май 21, 2017 21:09:13)
Офлайн