Python - элементы вывода в два списка на отдельных строках

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

Глава первая Тест [большое пространство] 84%

но вместо этого он распечатывает весь список, например:

[«Тест по главе 1», «Тест по главе 2», «Тест по главе 3»] [84%, 75%, 90%]

Кто-нибудь знает, как исправить эту проблему?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете попробовать:

   for test, grade in zip(testSet, calculatedMarks):
       print("{}    {}".format(test, grade))

В вашем примере списки весь будут распечатаны за один вызов print.

Это будет перебирать списки (создавая пары из каждого списка с помощью zip) и печатать каждую пару в отдельной строке.

Как и в ответе Dawg, вы можете использовать понимание списка и функцию str.join вместо цикла for с телом, чтобы получить это в одной строке / операторе печати.

Ответ принят как подходящий

Данный:

>>> li1=['Chapter One Test', 'Chapter Two Test', 'Chapter Three Test']
>>> li2=['84%', '75%', '90%']

Вы можете застегивать два списка вместе:

>>> print('\n'.join(['{}\t{}'.format(*t) for t in zip(li1,li2)]))
Chapter One Test    84%
Chapter Two Test    75%
Chapter Three Test  90%

Если вы хотите создать таблицу, вы можете сделать ширину полей фиксированной, а не разделенной \t:

>>> print('\n'.join(['{:22s}{:3s}'.format(*t) for t in zip(li1,li2)]))
Chapter One Test      84%
Chapter Two Test      75%
Chapter Three Test    90%

Прочтите больше о формате мини-язык, чтобы узнать больше об этих параметрах.

На мой взгляд, это более питонический ответ. Спасибо, чувак

ctj232 27.09.2018 01:02

Python 2 или Python 3? Если Python 3, добавьте скобку для print

dawg 27.09.2018 01:11

Придерживаясь вашего текущего подхода, вы можете внести небольшие изменения, либо распечатав index один за другим, либо сделав цикл, используя index из одного из списков enumerated, поскольку они имеют одинаковую длину и уже отсортированы для соответствия, я бы также сказал, посмотрите на l.just и r.just для достижения хорошего форматирования

print ("{}                     {}".format(testSet[0], calculatedMarks[0]))
print ("{}                     {}".format(testSet[1], calculatedMarks[1]))
print ("{}                     {}".format(testSet[2], calculatedMarks[2]))

for idx, item in enumerate(testSet):
    print("{}                      {}".format(testSet[idx], calculatedMarks[idx]))

Если вы предполагаете, что два списка имеют одинаковое количество индексов, зачем использовать enumerate вместо zip?

ctj232 27.09.2018 01:13

Я также предполагаю, что, если OP не смог бы собрать это вместе, более постепенный шаг в правильном направлении был бы чем-то, что он понял бы и не слишком чуждым, петли с enumerate - это меньший шаг, чем zip

vash_the_stampede 27.09.2018 01:16

Другие вопросы по теме