#python #list #input #python-3.8
#python #Список #ввод #python-3.8
Вопрос:
Допустим, у меня есть это:
maxNumOfArgs = int(input("enter length of list: "))
listOfNums = input("enter space separated list elements: ")
Ничто не мешает пользователю вводить больше аргументов, чем maxNumOfArgs
. Есть ли краткий питонический способ ограничить количество вводимых аргументов в input()
вызове?
Ответ №1:
Когда вы разделяете вторую входную строку, вы можете удалить все аргументы, превышающие запрошенную максимальную длину
# Get requested length
max_num_args = int(input("enter length of list: "))
# Get input string of comma-separated elements
all_inputs = input("enter space separated list elements: ")
# Split string by comma and only keep up to the maximum requested list length
input_values = all_inputs.split(',')[:max_num_args]
Ответ №2:
Когда вы разделяете str
возвращаемое с помощью input()
, вы можете ограничить количество разделений, передав параметр maxsplit
.
Пример:
>>> test = input("enter data: ")
a b c d e f
>>> args = test.split(" ", maxsplit=3)
>>> args
['a', 'b', 'c', 'd e f']
Обратите внимание, что в худшем случае массив, возвращаемый split, будет содержать 4 элемента, поскольку вы ограничили его 3 разделениями.