Ввод списка в Python

Раздел: Основы Python -> list

Способы ввода списка в 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 список первый элемент (первый элемент списка python)
- Python получить элемент списка (получение элемента списка python)
- произведение элементов python (произведение элементов списка python)

Дополнительные примеры работы с вводом списков

В этом разделе собраны менее очевидные случаи: чтение из стандартного потока, построение списка с пропуском счётчика, разбор по нескольким разделителям и обработка ввода как литерала 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() сохраняет его как дробное число.

Ввод списка в Python - comments

En
Python ввод списка (python)