如何在Python中将指定一维列表转换为3×N矩阵?
解决方案:将一维列表转换为3列表格
没问题,我来帮你搞定这个列表转表格的需求!你的列表前3个元素是表头,后面每3个元素对应一行数据,我们可以用Python轻松实现转换。
方法1:输出为你预期的文本格式表格
直接生成制表符分隔的对齐文本,和你想要的输出完全一致:
my_list = ["TITLE","COMPANY","TENURE", "Board Member","Softbank Corp","06/2007–06/2015", "Chairman","Alibaba.Com Ltd","10/2007–PRESENT", "Board Member","Huayi Brothers","FORMER"] # 提取表头 headers = my_list[:3] # 按每3个元素一组拆分数据行 data_rows = [my_list[i:i+3] for i in range(3, len(my_list), 3)] # 打印表头 print("\t".join(headers)) # 打印每一行数据 for row in data_rows: print("\t".join(row))
运行后输出:
TITLE COMPANY TENURE Board Member Softbank Corp 06/2007–06/2015 Chairman Alibaba.Com Ltd 10/2007–PRESENT Board Member Huayi Brothers FORMER
方法2:生成Markdown格式表格
如果需要生成适合文档展示的Markdown表格,可以用下面的代码:
my_list = ["TITLE","COMPANY","TENURE", "Board Member","Softbank Corp","06/2007–06/2015", "Chairman","Alibaba.Com Ltd","10/2007–PRESENT", "Board Member","Huayi Brothers","FORMER"] headers = my_list[:3] data_rows = [my_list[i:i+3] for i in range(3, len(my_list), 3)] # 构建Markdown表格字符串 markdown_table = f"| {' | '.join(headers)} |\n" markdown_table += "|---|---|---|\n" for row in data_rows: markdown_table += f"| {' | '.join(row)} |\n" print(markdown_table)
生成的Markdown表格如下:
| TITLE | COMPANY | TENURE |
|---|---|---|
| Board Member | Softbank Corp | 06/2007–06/2015 |
| Chairman | Alibaba.Com Ltd | 10/2007–PRESENT |
| Board Member | Huayi Brothers | FORMER |
代码逻辑说明
- 提取表头:用
my_list[:3]截取列表前3个元素作为表格的列标题; - 拆分数据行:用列表推导式从索引3开始,每次步进3个元素,把后续的列表元素拆分成多个长度为3的子列表,每个子列表对应一行数据;
- 拼接输出:根据需求选择用制表符连接元素生成文本表格,或者按照Markdown表格的语法拼接字符串。
内容的提问来源于stack exchange,提问作者Arthur Morgan
相关产品推荐
相关产品推荐

