我试图弄清楚如何在两个单独的行上打印两个列表中的每个元素:
第一章测试[大空间] 84%
但相反,它会像这样打印整个列表:
[“第一章测试”,“第二章测试”,“第三章测试”] [84%, 75%,90%]
有人知道如何解决此问题吗?
答案 0 :(得分:1)
您可以尝试:
for test, grade in zip(testSet, calculatedMarks):
print("{} {}".format(test, grade))
您的示例将在单个print
调用中打印整个列表。
这将遍历列表(使用zip
从每个列表中创建对),并将每对打印在自己的行上。
就像在道格的答案中一样,您可以使用列表推导和str.join
函数,而不是带有主体的for循环,以在单个行/打印语句中获得它。
答案 1 :(得分:1)
给出:
conda update qt
您可以zip一起列出两个列表:
>>> 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
详细了解格式mini-language,以了解有关这些选项的更多信息。
答案 2 :(得分:0)
使用您当前的方法,您可以通过逐个打印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]))