Я пытаюсь понять, как я буду печатать каждый элемент в обоих списках на отдельных строках, таких как:
Глава 1 Тест [большое пространство] 84%
но вместо этого он печатает весь список, например:
["Тест на первое место", "Тест на два главы", "Тест на три главы"] [84%, 75%, 90%]
Кто-нибудь знает, как решить эту проблему?
Дано:
>>> 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%
Узнайте больше о формате мини-языка, чтобы узнать больше об этих параметрах.
Вы можете попробовать:
for test, grade in zip(testSet, calculatedMarks):
print("{} {}".format(test, grade))
Ваш пример будет печатать целые списки в одном вызове print
.
Это будет перебирать списки (создавая пары из каждого списка с помощью zip
) и печатать каждую пару на своей собственной строке.
Как и в ответе str.join
, вы можете использовать понимание списка и функцию str.join
вместо цикла for с телом, чтобы получить это в одной строке/заявлении печати.
Придерживаясь своего текущего подхода, вы можете сделать небольшие корректировки, либо распечатав 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
?
enumerate
- это меньший шаг, чем zip
print