Рубрики
Без рубрики

Как напечатать список списка в Python?

Короткий ответ: Чтобы распечатать список списков в Python без скобок и выровненных столбцов, используйте функцию «.join () и выражение генератора, чтобы заполнить каждую строку достаточным количеством пробелов, чтобы составить столбцы: # Создать список списков lst знак равно [«Алиса», «Ученый-данные», «121000»], [«BOB», «Java Dev», «99000»], [«ANN», «Python Dev», ‘111000’]] … как печатать Список списка в Python? Подробнее “

Автор оригинала: Chris.

Краткий ответ: Чтобы распечатать список списков в Python без скобок и выровненных столбцов, используйте ”.присоединиться () Функция и выражение генератора для заполнения каждой строки достаточным количеством пробелов, так что колонны выравниваются:

# Create the list of lists
lst = [['Alice', 'Data Scientist', '121000'],
       ['Bob', 'Java Dev', '99000'],
       ['Ann', 'Python Dev', '111000']]


# Find maximal length of all elements in list
n = max(len(x) for l in lst for x in l)

# Print the rows
for row in lst:
    print(''.join(x.ljust(n + 2) for x in row))

Я объясню этот код (и простые варианты) в следующем видео:

Как упражнение, вы также можете попробовать сами в нашей интерактивной оболочке:

Пошаговая формулировка проблем

Вы хотите распечатать список списков в Python, чтобы формат не похож на полный беспорядок? В этом руководстве я покажу вам, как упорядочить распечатать список списков в Python – без использования любой внешней библиотеки.

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

lst = [['Alice', 'Data Scientist', 121000],
       ['Bob', 'Java Dev', 99000],
       ['Ann', 'Python Dev', 111000]]
print(lst)

Выход не очень приятный:

[['Alice', 'Data Scientist', 121000], ['Bob', 'Java Dev', 99000], ['Ann', 'Python Dev', 111000]]

Вместо этого вы бы хотели бы хотеть увидеть красивый вывод, такой как этот, где каждая строка имеет отдельную строку, а строки выровнены:

[['Alice', 'Data Scientist', 121000], 
 ['Bob', 'Java Dev', 99000], 
 ['Ann', 'Python Dev', 111000]]

И, может быть, вы даже хотите увидеть вывод, который выравнивает три столбца, как и этот:

Alice           Data Scientist  121000          
Bob             Java Dev        99000           
Ann             Python Dev      111000   

Я покажу вам все эти разные способы печати списка списков рядом. Итак, давайте начнем с самого проще всего:

Печать Список списков с новой строкой

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

Пример : Рассмотрим следующий примерный список:

lst = [[1, 2, 3], [4, 5, 6]]

Вы хотите распечатать список списков с символом Newline после каждого внутреннего списка:

1 2 3
4 5 6

Решение : Используйте A для LOOP и простое оператор печати:

lst = [[1, 2, 3], [4, 5, 6]]

for x in lst:
    print(*x)

Выход имеет желаемую форму:

1 2 3
4 5 6

Объяснение : Звездочный оператор «Распакивает» все значения во внутреннем списке х в оператор печати. Вы должны знать, что оператор печати также принимает несколько входов и печатает их, пробел разделенный, к оболочке.

Статьи по теме :

  • Распаковка оператора *
  • Как печатать список красиво
  • Списки питона списков

Печать Список списков без скобок

Чтобы распечатать список списков без скобок, снова используйте следующий код.

Решение : Используйте A для LOOP и простое оператор печати:

lst = [[1, 2, 3], [4, 5, 6]]

for x in lst:
    print(*x)

Выход имеет желаемую форму:

1 2 3
4 5 6

Но как вы можете распечатать список списков, выравнивая столбцы?

Список печати списков Выровняйте столбцы

Проблема Как распечатать список списков, чтобы столбец были выровнены?

Пример : Скажите, вы собираетесь распечатать список списков.

[['Alice', 'Data Scientist', 121000], 
 ['Bob', 'Java Dev', 99000], 
 ['Ann', 'Python Dev', 111000]]

Как выровнять столбцы?

Alice   'Data Scientist',  121000], 
 Bob    'Java Dev',           99000], 
 Ann    'Python Dev',      111000]]

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

# Create the list of lists
lst = [['Alice', 'Data Scientist', '121000'],
       ['Bob', 'Java Dev', '99000'],
       ['Ann', 'Python Dev', '111000']]


# Find maximal length of all elements in list
n = max(len(x) for l in lst for x in l)

# Print the rows
for row in lst:
    print(''.join(x.ljust(n + 2) for x in row))

Выход – это желаемое:

Alice           Data Scientist  121000          
Bob             Java Dev        99000           
Ann             Python Dev      111000   

Объяснение:

  • Во-первых, вы определяете длину N (в символах) наибольшей строки в списке списков с использованием оператора max (len (x) для l в lst для x в l) Отказ Код использует вложенный для цикла в выражении генератора для достижения этой цели.
  • Во-вторых, вы повторяете каждый список в списке списков (называется ряд ).
  • В-третьих, вы создаете строковое представление с столбцами, выровненными на «прокладке» каждая строки элемента, так что оно занимает N + 2 персонажи пространства. Пропущенные символы заполнены пустыми пробелами.

Вы можете увидеть код в действии в следующем визуализации памяти. Просто нажмите «Далее», чтобы увидеть, какие объекты создаются в памяти, если вы запустите код в Python:

Статьи по теме : Вам может потребоваться обновить ваше понимание следующих функций Python, используемой в коде:

  • Развитие списка и выражения генератора
  • Строка соединяется ()
  • Печать списков

Печать Список списков с пандами

Последнее, но не в последнюю очередь, я покажу вам мой простой любимый: просто импортируйте библиотеку Pandas (Excel of Python Coders) и распечатайте файл dataframe. Пандас заботится о красивом форматировании:

lst = [['Alice', 'Data Scientist', '121000'],
       ['Bob', 'Java Dev', '99000'],
       ['Ann', 'Python Dev', '111000']]

import pandas as pd
df = pd.DataFrame(lst)
print(df)

Вывод выглядит красиво-похожую на электронную таблицу в вашей корпусе Python:

       0               1       2
0  Alice  Data Scientist  121000
1    Bob        Java Dev   99000
2    Ann      Python Dev  111000

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/print-a-list-of-list-in-python/”