python - 如何打印带有对齐文本的列表列表,rjust() 的整数长度来自列表中字符串的最大长度。
问题描述
我试图找到答案,但大多数答案都使用 map() 或 zip() 等高级函数。我必须只使用字符串属性、方法或函数。我找不到字符串函数或属性的答案。
我需要将给定的列表列表打印到右对齐的列中。它是每个子列表的一种转置,即列表列表中的第一个列表打印为表格的第一列,第二个列表第二列,依此类推。
给定的列表列表:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
和所需的输出:
请注意,rjust() 的参数来自 tableData 中最长单词的最大长度。
我已经计算出了 tableData 中最长单词的最大整数长度,如下所示:
colWidths=[]
for i in range(len(tableData)):
maxL=len(max(tableData[i], key=len))
colWidths.append(maxL)
max(colWidths)
现在我被困住了如何编写一个循环来以所需的表格格式打印列表。(我可以使用 zip() 或 map() 来做到这一点,但那不被接受!)有什么帮助吗?
解决方案
如果你不想转置表,你可以用肮脏的方式来做:
for column in range(4):
for row in range(3):
print(tableData[row][column].rjust(10), end='')
print('')
如果您的任务需要,可以动态设置列/行范围
推荐阅读
- php - 如何在 while 循环中使用 json_encode?
- accumulo - 使用转换器文件将 CSV 添加到 Accumulo/GeoMesa
- vb.net - 我如何连接每个二传手
- kubernetes - 如何使 HPA 根据另一个部署产生的指标来扩展部署
- angular - 如何从指令中填充选择选项?
- php - php://input 正在输出一个空字符串
- scala - 为什么不使用隐式参数?
- python - 绘图未返回 x-ticks 值
- jenkins - 为什么我的 Jenkins 不能与 Katalon 的 TestSuit 一起使用
- laravel - 如何在 Laravel 5.8 中覆盖更新方法