Ввод списка в Python
Способы ввода списка в Python
Список list наполняется данными из консоли разными путями. Пользовательский ввод всегда приходит строкой, поэтому программе требуется разделить эту строку на части и преобразовать части в нужный тип.
Как ввести список целых чисел в одну строку через пробел?
Базовый вариант состоит из чтения строки, её разбиения по пробелам и преобразования каждого фрагмента в целое число.
source = input()
numbers = list(map(int, source.split()))
print(numbers)функция длина списка в python (длина списка в python)
Ввод: 7 14 21 Вывод: [7, 14, 21]
Python ввод списка (ввод списка в python)
Метод split() без аргумента отбрасывает лишние пробелы в начале и в конце строки. Функция map() не создаёт список сразу, поэтому результат передаётся в list(), чтобы получить обычный список.
Если нужен список строк, преобразование в число не выполняется.
words = input().split()
print(words)
изменить элементы списка python (изменение элементов списка в python)
Ввод: альфа бета гамма Вывод: ['альфа', 'бета', 'гамма']
Python элементы списка в другой список (копирование элементов списка в другой список)
Как задать количество элементов и ввести их по одному на строке?
Такой подход применяется, когда первое число определяет длину будущего списка.
n = int(input())
numbers = []
for _ in range(n):
value = int(input())
numbers.append(value)
print(numbers)Python 3 append (метод append в python 3)
Ввод: 4 25 30 35 40 Вывод: [25, 30, 35, 40]
поменять элементы местами python (обмен элементов местами)
Цикл повторяется n раз, для каждого ввода вызывается int() и append() добавляет значение в конец списка.
Как вводить числа до пустой строки без заранее известного количества?
Цикл while позволяет остановиться, когда пользователь оставит строку пустой.
numbers = []
while True:
value = input()
if not value.strip():
break
numbers.append(int(value))
print(numbers)найти индекс списка python (поиск индекса в списке python)
Ввод: 10 20 30 Вывод: [10, 20, 30]
получить индекс python (получение индекса элемента в python)
Метод strip() обнаруживает строку из одних пробелов и не позволяет int() получить бессмысленное значение.
Как ввести список чисел без map с помощью цикла?
Цикл for помогает проследить каждый шаг преобразования.
parts = input().split()
numbers = []
for part in parts:
numbers.append(int(part))
print(numbers)Last index python (последний индекс в python)
Ввод: 1 2 3 4 Вывод: [1, 2, 3, 4]
создать массив чисел python (создание массива (списка) чисел в python)
Тот же результат даёт генератор списка; он выбирает более короткую запись.
numbers = [int(x) for x in input().split()]
print(numbers)Python список значений (список значений в python)
Ввод: 5 6 7 Вывод: [5, 6, 7]
Python список чисел (список чисел в python)
Как ввести список, разделённый запятыми?
В качестве разделителя split() принимает запятую.
line = input()
numbers = list(map(int, line.split(',')))
print(numbers)посчитать список python (посчитать элементы списка в python)
Ввод: 12, 45, 78 Вывод: [12, 45, 78]
Python list int (список целых чисел в python)
Запятая с пробелом обрабатывается потому, что int() убирает пробелы вокруг числа.
Частая ошибка появляется, когда элементы списка остаются строками. Сложение таких элементов даёт текст, а не сумму.
raw = input().split()
print(raw[0] + raw[1])повторение списка python (повторение списка в python)
Ввод: 6 9 Вывод: 69
удалить значение из списка python (удаление элемента из списка по значению в python)
Строки '6' и '9' соединяются. Перед вычислениями каждую часть нужно преобразовать в int.
nums = list(map(int, input().split()))
print(nums[0] + nums[1])Python число элементов списка (число элементов списка python)
Ввод: 6 9 Вывод: 15
Python элементы списка (элементы списка в python)
Другая ошибка возникает при вводе нечислового значения. Вместо остановки всей программы используют перехват ValueError.
try:
numbers = list(map(int, input().split()))
except ValueError:
numbers = []
print('Введено нечисловое значение')
print(numbers)динамические списки python (динамические списки в python)
Ввод: один 2 3 Вывод: Введено нечисловое значение []
Переменная numbers сохраняет пустой список, и выполнение программы продолжается.
Дополнительные примеры работы с вводом списков
В этом разделе собраны менее очевидные случаи: чтение из стандартного потока, построение списка с пропуском счётчика, разбор по нескольким разделителям и обработка ввода как литерала Python.
Как прочитать список чисел из стандартного потока до конца?
Когда данные подаются в программу из файла или через конвейер, полезно прочитать весь ввод сразу.
import sys
raw = sys.stdin.read().split()
numbers = list(map(int, raw))
print(numbers)Входной поток: 2 3 4 5 6 Вывод: [2, 3, 4, 5, 6]
После завершения потока read() возвращает строку, split() извлекает все числа независимо от разбиения по строкам.
Как ввести первое число как количество элементов и исключить его из конечного списка?
В некоторых форматах первое значение содержит длину списка, а последующие значения являются элементами. Распаковка map() позволяет не обращаться к индексам.
n, *numbers = map(int, input().split())
print(numbers)Ввод: 4 10 20 30 40 Вывод: [10, 20, 30, 40]
Переменная n получает число 4, а звёздочка собирает остальные значения в список numbers.
Как собрать матрицу из нескольких строк ввода?
Первая строка содержит число строк, дальше каждая строка соответствует одной строке матрицы.
rows = int(input())
matrix = []
for _ in range(rows):
row = list(map(int, input().split()))
matrix.append(row)
print(matrix)Ввод: 2 1 2 3 4 Вывод: [[1, 2], [3, 4]]
В переменной row лежит отдельный список чисел, append() добавляет его в общий список matrix.
Как разделить ввод по нескольким разделителям сразу?
Модуль re позволяет указать набор символов, которые считаются разделителями.
import re
line = input()
parts = re.split(r'[;,\s]+', line)
numbers = [int(x) for x in parts if x]
print(numbers)Ввод: 4; 5,6 7 Вывод: [4, 5, 6, 7]
Квадратные скобки задают группу символов: точку с запятой, запятую и любой пробельный символ. Проверка if x убирает пустые фрагменты в начале строки, если ввод начинается с разделителя.
Как превратить строку с литералом списка в реальный список?
Если пользователь вводит именно вид Python-объекта, например [1, 2, 3], допустимо применить literal_eval из модуля ast. Эта функция безопаснее eval, поскольку разбирает только литеральные структуры и не выполняет произвольные выражения.
from ast import literal_eval
raw = input()
try:
values = literal_eval(raw)
if not isinstance(values, list):
values = []
except (ValueError, SyntaxError):
values = []
print(values)Ввод: [1, 2, 3] Вывод: [1, 2, 3]
После разбора строка становится обычным списком. Кортеж или множество тоже будут восприняты, но условие isinstance оставляет только list.
Как сохранить целые и дробные числа из одной строки в одном списке?
Сначала выполняется попытка преобразования в int, затем в float. Такой порядок сохраняет целые числа в исходном виде.
row = input().split()
mixed = []
for item in row:
try:
mixed.append(int(item))
except ValueError:
mixed.append(float(item))
print(mixed)Ввод: 1 2.5 3 4.75 Вывод: [1, 2.5, 3, 4.75]
Значение 2.5 не проходит int(), поэтому float() сохраняет его как дробное число.