Печать содержимого списка на экран средствами Python

Раздел: Основы Python -> Операции вывода

Практические приёмы печати списков

Базовый способ показать список на экране, это передать переменную с типом list в функцию print(). Функция преобразует коллекцию в строку, добавляя квадратные скобки и запятые.


numbers = [1, 2, 3]
print(numbers)

Python вывод (вывод данных на экран в python)

[1, 2, 3]

вывод класса python (вывод класса в python)

Такой вариант удобен для быстрой проверки содержимого переменной. Функция print использует представление repr() для элементов, поэтому строки выводятся в кавычках.

Прямой вывод списка строк добавляет кавычки вокруг каждого элемента:

words = ["один", "два"]
print(words)

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

['один', 'два']

форматы вывода python (форматы вывода в python)

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

Как сделать построчный вывод элементов списка?

Цикл for последовательно получает каждый элемент. На каждой итерации функция print() выводит значение и переводит курсор на новую строку.


fruits = ["яблоко", "банан", "апельсин"]
for item in fruits:
    print(item)
яблоко
банан
апельсин

Такой подход даёт полный контроль над форматом. Внутри цикла можно добавить номер, дополнительный текст или изменить разделитель.

Если внутри цикла вызывать print с параметром end=' ', элементы окажутся в одной строке. После завершения цикла автоматический перенос не появляется.


for item in [1, 2, 3]:
    print(item, end=' ')
1 2 3 

Как превратить список в строку с разделителем?

Метод join() применяется к строке-разделителю и принимает итерируемый объект. Все элементы должны быть строками.


colors = ["красный", "зелёный", "синий"]
line = ", ".join(colors)
print(line)
красный, зелёный, синий

Этот способ удобен для подготовки данных к записи в файл, для CSV или для отображения в интерфейсе.

Ошибка возникает, если список содержит числа:

numbers = [10, 20, 30]
print(", ".join(numbers))
TypeError: sequence item 0: expected str instance, int found

Числа предварительно превращают в строки через map(str, numbers) или генератор списка.

numbers = [10, 20, 30]
line = ", ".join(map(str, numbers))
print(line)
10, 20, 30

Как вывести элементы без скобок и кавычек?

Оператор * перед именем списка разворачивает содержимое в отдельные аргументы функции print(). Параметр sep задаёт разделитель.


row = [1, 2, 3]
print(*row)
1 2 3

row = [1, 2, 3]
print(*row, sep=", ")
1, 2, 3

Вариант подходит для числовых данных и результатов вычислений. Преобразование элементов в строки не требуется.

Если список слишком большой, распаковка создаёт много аргументов для функции. Для миллионов элементов лучше использовать цикл или join.

Как вывести элементы с номерами?

Функция enumerate() возвращает пары индекс и значение. Цикл for с этой функцией позволяет показать порядковый номер.


names = ["Аня", "Борис", "Виктор"]
for index, name in enumerate(names, start=1):
    print(index, name)
1 Аня
2 Борис
3 Виктор

Такой формат используют для нумерованных списков, меню или таблиц.

По умолчанию enumerate начинает с 0. Чтобы отсчёт начинался с единицы, передаётся параметр start=1. Без него индекс будет 0, 1, 2.

Вложенные списки и модуль pprint

Для многоуровневых структур стандартный print() может не показывать вложенность достаточно наглядно. Модуль pprint умеет переносить строки и выравнивать элементы.

Пример

from pprint import pprint

data = [
    ["код", "название", "цена"],
    [101, "ручка", 15.5],
    [102, "карандаш", 8.0],
]
pprint(data, width=30)
[['код', 'название', 'цена'],
 [101, 'ручка', 15.5],
 [102, 'карандаш', 8.0]]

Параметр width задаёт максимальную ширину строки. Если структура слишком длинная, pprint разбивает её на части.

Модуль pprint предназначен для вывода в консоль, а не для формирования чистых данных. Для сохранения в файл лучше использовать json.dumps или стандартный join.

Числа с выравниванием и разделителем

Форматная спецификация f-строки позволяет выровнять числа по ширине. Это удобно при создании таблиц.

Пример

squares = [x * x for x in range(1, 6)]
line = " | ".join(f"{x:>3}" for x in squares)
print(line)
  1 |   4 |   9 |  16 |  25

Выражение f"{x:>3}" добавляет пробелы слева, чтобы каждое число занимало не менее трёх символов. Метод join собирает все части в одну строку.

Перевод строки как разделитель

Оператор * распаковывает список в аргументы. Если задать sep="\n", то между элементами будет перевод строки.

Пример

letters = ["а", "б", "в"]
print(*letters, sep="\n")
а
б
в

Такой способ заменяет цикл for, когда требуется просто поместить элементы на отдельные строки.

Смешанные данные

Список может содержать числа, строки и другие типы. Метод join требует строки, поэтому каждый элемент преобразуется через map(str, ...).

Пример

mixed = [1, "два", 3.0]
line = " - ".join(map(str, mixed))
print(line)
1 - два - 3.0

Для списков с большим количеством элементов map преобразует элементы по одному, а итоговая строка собирается методом join.

Выборочный вывод элементов

Цикл с условием помогает напечатать не весь список, а только значения, соответствующие критерию.

Пример

numbers = [1, 2, 3, 4, 5, 6]
for number in numbers:
    if number % 2 == 0:
        print(number, end=" ")
2 4 6 

Условие number % 2 == 0 оставляет чётные числа. Параметр end=" " оставляет элементы в одной строке, но в конце остаётся пробел.

Пробел после последнего числа не всегда желателен. Для аккуратного вывода можно сначала собрать строку через join, а потом напечатать её.

Обратный порядок

Функция reversed() создаёт итератор, который двигается по списку с конца. Оператор * передаёт его элементы в print().

Пример

items = ["один", "два", "три"]
print(*reversed(items))
три два один

Такой вариант удобен для быстрого показа списка в обратной последовательности без создания нового списка.

Столбцы из нескольких списков

Функция zip() объединяет элементы двух списков в пары. Это позволяет выводить связанные данные рядом.

Пример

left = [1, 2, 3]
right = ["один", "два", "три"]
for a, b in zip(left, right):
    print(f"{a}: {b}")
1: один
2: два
3: три

Если списки имеют разную длину, zip останавливается на самом коротком.

Для сохранения всех элементов более длинного списка используется zip_longest из модуля itertools.

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

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