Автор оригинала: 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/”