Share This
Связаться со мной
Крути в низ
Categories
//Как вывести список в Python

Как вывести список в Python

07.03.2023Category : Python

А вы знаете, что вывести на экран список в Python можно несколькими способами? В этой статье мы разберем несколько приемов распечатки списка.

11 способов вывести список на экран в Python

1. Вывод списка при помощи *

Чтобы распечатать список список с использованием оператора *, нужно использовать функцию print() следующим образом:

print(*list_name)

Элементы будут выведены через пробел, как при использовании print() с несколькими аргументами. Например:

pokemon_list = ['Pikachu', 'Abra', 'Charmander'] print(*pokemon_list)  # Результат: # Pikachu Abra Charmander

Оператор * также можно использовать для распаковки списка при вызове функции, принимающей несколько аргументов:

def print_pokemon(pokemon1, pokemon2, pokemon3):     print(pokemon1)     print(pokemon2)     print(pokemon3)     print_pokemon(*pokemon_list)

Вывод:

Pikachu  Abra  Charmander

2. Вывод списка Python с разделителями между элементами

Чтобы вывести список с определенными разделителями, можно использовать представление списка внутри функции print():

print(*[item + 'n' for item in pokemon_list])

Символ новой строки n, добавленный после каждого элемента, гарантирует, что каждый элемент будет выведен на отдельной строке:

Pikachu  Abra  Charmander

Помните, что в качестве разделителя можно использовать любую строку. Например, чтобы элементы списка отделялись друг от друга запятой и пробелом, можно использовать следующий синтаксис:

print(*[item + ', ' for item in pokemon_list])  # Результат: # Pikachu,  Abra,  Charmander,

Обратите внимание, что за последним элементом тоже будут идти запятая и пробел, а вам этого может и не хотеться.

3. Как вывести список без разделителя в конце

Чтобы избежать этой ловушки, можно использовать выражение if внутри представления списка. Таким образом можно указать добавлять разделитель после всех элементов, кроме последнего. Вот как это выглядит:

print(*[item + (', ' if i < len(pokemon_list)-1 else '') for i, item in enumerate(pokemon_list)])  # Результат: # Pikachu,  Abra,  Charmander

Чтобы вывести список с разделителями, но без разделителя в конце, также можно использовать функцию print() с именованным аргументом sep. Элементы будут разделены запятой и пробелом:

print(*pokemon_list, sep=', ')  # Результат: # Pikachu, Abra, Charmander

Обратите внимание, что print() автоматически добавляет пробел после каждого элемента, так что его можно не включать в строку разделителя.

Как уже упоминалось, разделителем может быть любая строка, например, дефис:

print(*pokemon_list, sep='-')  # Результат: # Pikachu-Abra-Charmander

Помните, что именованный аргумент sep определяет только разделитель между элементами, но не за последним элементом.

Предположим, вы хотите подавить автоматическое добавление пробела после конечного элемента. В этом случае можно использовать именованный аргумент end и задать другую строку, которую следует вывести вместо конечного пробела:

print(*pokemon_list, sep=', ', end='')  # Результат: # Pikachu, Abra, Charmander

4. Вывод списка при помощи join()

Чтобы вывести список с использованием метода join(), нужно применить следующий синтаксис:

print(separator.join(list_name))

Элементы списка будут объединены в одну строку со строкой-разделителем между ними (separator). Например, чтобы вывести список покемонов через запятую и пробел, можно написать такой код:

print(', '.join(pokemon_list))  # Результат: # Pikachu, Abra, Charmander

Если хотите добавить строку до или после списка, можно воспользоваться оператором + для конкатенации строк:

print('Pokemons: ' + ', '.join(pokemon_list))  # Результат: # Pokemons: Pikachu, Abra, Charmander

5. Конвертация списка в строку с последующим выводом

Можно сперва преобразовать список в строку, а затем вывести его. Для конвертации используется функция str():

print(str(pokemon_list))

Список будет выведен как строка, элементы будут заключены в квадратные скобки и разделены запятыми:

['Pikachu', 'Abra', 'Charmander']

6. Вывод элементов списка с их индексами

Для распечатки списка с индексами элементов можно воспользоваться функцией enumerate() и циклом for:

for i, pokemon in enumerate(pokemon_list):     print(i, pokemon)

Результат:

0 Pikachu 1 Abra 2 Charmander

От редакции Pythonist: подробнее об enumerate() читайте в статье «Как работает функция enumerate() в Python?».

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

Используя вариацию одного из уже рассмотренных способов вывода списка, мы можем настроить вывод индексов и значений. Например:

for i, pokemon in enumerate(pokemon_list):     print('{}: {}'.format(i, pokemon))

Результат:

0: Pikachu 1: Abra 2: Charmander

Также можно использовать представление списка для создания нового списка строк с отформатированными индексами и значениями всех элементов, а затем применить print() для вывода:

result = ['{}: {}'.format(i, pokemon) for i, pokemon in enumerate(pokemon_list)] print(result)  # Результат: # ['0: Pikachu', '1: Abra', '2: Charmander']

Помните, что функция enumerate() возвращает индекс каждого элемента, начиная с 0. Если вы хотите, чтобы индексация начиналась с другого числа, вы можете передать его функции в качестве аргумента. Например:

for i, pokemon in enumerate(pokemon_list, 1):     print('{}: {}'.format(i, pokemon))

Результат:

1: Pikachu 2: Abra 3: Charmander

7. Вывод сразу двух списков

Чтобы вывести два списка таким образом, чтобы их элементы выстроились попарно, нужно проитерировать оба списка в одном цикле. Для этого можно использовать цикл for и функцию zip().

От редакции Pythonist: о функции zip() предлагаем почитать в статье «Используем zip() для парной итерации».

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

Пример:

a = ['a1', 'a2', 'a3'] b = ['b1', 'b2', 'b3'] for x, y in zip(a, b):     print(x, y)

Результат:

a1 b1 a2 b2 a3 b3

При помощи представления списка также можно создать новый список со спаренными элементами двух исходных, а затем вывести его:

a = ['a1', 'a2', 'a3'] b = ['b1', 'b2', 'b3'] result = [x + y for x, y in zip(a, b)] print(result)  # Результат: # ['a1b1', 'a2b2', 'a3b3']

Важно помнить, что функция zip() перебирает элементы списков только пока они не исчерпаются в самом коротком списке. Если ваши списки разной длины, не все элементы более длинного списка попадут в вывод. Например:

a = ['a1', 'a2', 'a3'] b = ['b1', 'b2'] for x, y in zip(a, b):     print(x, y)

Результат:

a1 b1 a2 b2

Если вы хотите включить все элементы более длинного списка, можно вместо недостающих элементов более короткого списка использовать значения None. Для этого применяется функция itertools.zip_longest() из модуля itertools. Например:

import itertools   a = ['a1', 'a2', 'a3'] b = ['b1', 'b2']   for x, y in itertools.zip_longest(a, b):     print(x, y)

Результат:

a1 b1 a2 b2 a3 None

8. Как вывести вложенный список Python

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

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]   for sublist in nested_list:     for item in sublist:         print(item)

Результат:

1 2 3 4 5 6 7 8 9

Списки также можно вывести на разных строках:

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for sublist in nested_list:     print(*sublist, sep=",")

Вывод:

1,2,3 4,5,6 7,8,9

Еще можно создать новый список из элементов вложенного при помощи list comprehension и вывести его при помощи print():

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] result = [item for sublist in nested_list for item in sublist]  # Результат: # [1, 2, 3, 4, 5, 6, 7, 8, 9]

9. Использование pprint()

Еще можно использовать модуль pprint, который предоставляет функцию pprint() для красивой распечатки списков и других структур данных:

import pprint   pokemon_list = ['Pikachu', 'Abra', 'Charmander'] pprint.pprint(pokemon_list)  # Результат: # ['Pikachu', 'Abra', 'Charmander']

10. Использование dumps()

Для вывода списка можно применить модуль json, в котором есть функция dumps(). Она может конвертировать список в строку JSON:

import json   pokemon_list = ['Pikachu', 'Abra', 'Charmander'] print(json.dumps(pokemon_list))  # Результат: # ["Pikachu", "Abra", "Charmander"]

11. Вывод списка при помощи f-строк

И, наконец, можно использовать f-строки (доступно в Python 3.6 и более новых версиях). Этот функционал позволяет встраивать выражения в строковые литералы при помощи плейсхолдера {}:

for pokemon in pokemon_list:     print(f'{pokemon} is a pokemon')

Результат:

Pikachu is a pokemon Abra is a pokemon Charmander is a pokemon

От редакции Pythonist: об f-строках читайте в статье «Форматирование строк в Python: format() и f-строки».

Перевод статьи «Printing a List in Python – 10 Tips and Tricks».

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close