- Как вывести список в Python
- 11 способов вывести список на экран в Python
- 1. Вывод списка при помощи *
- 2. Вывод списка Python с разделителями между элементами
- 3. Как вывести список без разделителя в конце
- 4. Вывод списка при помощи join()
- 5. Конвертация списка в строку с последующим выводом
- 6. Вывод элементов списка с их индексами
- 7. Вывод сразу двух списков
- 8. Как вывести вложенный список Python
- 9. Использование pprint()
- 10. Использование dumps()
- 11. Вывод списка при помощи f-строк
- Распечатать полный массив NumPy
- Распечатать полный массив NumPy с помощью функции numpy.set_printoptions() в Python
Как вывести список в Python
А вы знаете, что вывести на экран список в Python можно несколькими способами? В этой статье мы разберем несколько приемов распечатки списка.
11 способов вывести список на экран в Python
1. Вывод списка при помощи *
Чтобы распечатать список список с использованием оператора * , нужно использовать функцию print() следующим образом:
Элементы будут выведены через пробел, как при использовании 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)
2. Вывод списка Python с разделителями между элементами
Чтобы вывести список с определенными разделителями, можно использовать представление списка внутри функции print() :
print(*[item + '\n' for item in pokemon_list])
Символ новой строки \n , добавленный после каждого элемента, гарантирует, что каждый элемент будет выведен на отдельной строке:
Помните, что в качестве разделителя можно использовать любую строку. Например, чтобы элементы списка отделялись друг от друга запятой и пробелом, можно использовать следующий синтаксис:
print(*[item + ', ' for item in pokemon_list]) # Результат: # Pikachu, Abra, Charmander,
Обратите внимание, что за последним элементом тоже будут идти запятая и пробел, а вам этого может и не хотеться.
3. Как вывести список без разделителя в конце
Чтобы избежать этой ловушки, можно использовать выражение if внутри представления списка. Таким образом можно указать добавлять разделитель после всех элементов, кроме последнего. Вот как это выглядит:
Чтобы вывести список с разделителями, но без разделителя в конце, также можно использовать функцию 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() :
Список будет выведен как строка, элементы будут заключены в квадратные скобки и разделены запятыми:
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)
При помощи представления списка также можно создать новый список со спаренными элементами двух исходных, а затем вывести его:
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)
Если вы хотите включить все элементы более длинного списка, можно вместо недостающих элементов более короткого списка использовать значения 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)
8. Как вывести вложенный список Python
Для вывода вложенного списка можно сначала перебрать в цикле элементы внешнего списка, а затем, в другом цикле, перебрать элементы внутреннего. Например:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for sublist in nested_list: for item in sublist: print(item)
Списки также можно вывести на разных строках:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for sublist in nested_list: print(*sublist, sep=",")
Еще можно создать новый список из элементов вложенного при помощи 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' is a pokemon')
Pikachu is a pokemon Abra is a pokemon Charmander is a pokemon
От редакции Pythonist: об f-строках читайте в статье «Форматирование строк в Python: format() и f-строки».
Распечатать полный массив NumPy
Из этого туториала Вы узнаете, как напечатать полный массив NumPy в Python.
Распечатать полный массив NumPy с помощью функции numpy.set_printoptions() в Python
По умолчанию, если длина нашего массива огромна, Python обрезает вывод при печати массива. Это явление демонстрируется в приведенном ниже примере кода.
import numpy as np array = np.arange(10000) print(array)
В приведенном выше коде мы сначала создали массив NumPy array , содержащий числовые значения от 0 до 9999, с помощью функции np.arange() в Python. Затем мы распечатали элементы массива с помощью функции print() . Мы получаем усеченный вывод, потому что массив слишком велик для отображения полностью.
Эту проблему можно решить с помощью функции numpy.set_printoptions() . Он устанавливает различные параметры, связанные с массивами печати в Python. Мы можем использовать параметр threshold функции numpy.set_printoptions() для sys.maxsize , чтобы распечатать полный массив NumPy. Чтобы использовать свойство sys.maxsize , нам также необходимо импортировать библиотеку sys . В следующем примере кода показано, как напечатать полный массив NumPy с помощью функции numpy.set_printoptions() и свойства sys.maxsize в Python.
import sys import numpy as np array = np.arange(10001) np.set_printoptions(threshold=sys.maxsize) print(array)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 . 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000]
В приведенном выше коде мы сначала создали массив NumPy array , содержащий элементы от 0 до 10000 с помощью функции numpy.arange() . Мы устанавливаем максимальные параметры печати для массива с помощью функции np.set_printoptions(threshold = sys.maxsize) . Затем мы распечатали полный массив с помощью простой функции print() в Python.
Есть еще одно решение нашей проблемы, которое предполагает использование только библиотеки NumPy . Мы можем указать порог внутри функции numpy.set_printoptions() равным np.inf для печати всего массива в Python. Свойство np.inf указывает, что print() будет выполняться бесконечно, пока не будет напечатан весь массив. См. Следующий пример кода.
import numpy as np array = np.arange(10001) np.set_printoptions(threshold=np.inf) print(array)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 . 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000]
Мы устанавливаем параметр threshold равным np.inf с помощью функции np.set_printoptions() . Затем мы распечатали полный массив с помощью простой функции print() в Python. Этот подход предпочтительнее предыдущего, поскольку для этого подхода требуется только библиотека NumPy .
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.