python - 如何将列表列表打印成合理的表格格式
问题描述
我希望能够使用函数将列表列表(我们可以假设内部列表的长度相同)转换为对齐表。
到目前为止,我已经尝试过以下方法,但这并不能证明该表的合理性。
我还需要了解 zip 在做什么?使用 *v 时我总是可以解压吗?
我能解释一下为什么我需要做 *v 来解压元组,而不是在下面的代码中使用 *Data 吗?
def printTables(Data):
for v in zip(*Data):
print(*v)
printTables(tableData)
Input:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
Output:
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David goose
解决方案
使用pandas将解决您的所有问题
import pandas as pd
df = pd.DataFrame(tableData).transpose()
print(df)
0 1 2
0 apples Alice dogs
1 oranges Bob cats
2 cherries Carol moose
3 banana David goose
本机 Python
for i, j, k in zip(*tableData):
print('{:<12} {:<12} {:<12}'.format(i, j, k))
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David goose
推荐阅读
- python - 从网页抓取信息后,如何创建 Python CSV 文件?
- ruby - Ruby 开关输出意外值
- module - Julia - 在不重新启动 Jupyter Notebook 内核的情况下开发包和更新更改
- python - 在网站上使用 Selenium Python 运行测试但无法单击链接
- java - Java 代码上的错误消息让我创建了 2 个计算器对象并对它们执行操作
- javascript - JavaScript For 循环返回不完整的数据
- netlogo - 创建一只乌龟并将其放置在一个不是黑色且没有另一只乌龟的补丁中
- android - 使用 Hilt 的动态模块上的 InstantiationException
- kotlin - 您可以使用 Arrow FX 将此代码转换为 monad 理解吗?
- node.js - 从 keycloak 中获取用户名列表并将其保存到数组中以备后用