如何在Python中实现类似Excel数据表的交叉计算输出?
没问题,咱们直接调整代码就能实现你想要的Excel表格样式输出啦!
核心思路是按行构建输出内容,而不是把所有结果塞进一个一维列表里。具体代码修改如下:
list1 = [2,3,4] list2 = [5,6,7] def calc(a,b): result = a**2 + b return result # 打印第一行的列标题(list1的元素) print(' '.join(map(str, list1))) # 遍历list2的每个元素作为行标题,然后计算对应列的结果 for j in list2: # 构造当前行:行标题 + 每个list1元素对应的计算结果 current_row = [str(j)] + [str(calc(i, j)) for i in list1] # 用空格拼接并打印 print(' '.join(current_row))
运行这段代码后,输出就完全符合你的期望:
2 3 4 5 9 14 21 6 10 15 22 7 11 16 23
简单解释下逻辑:
- 第一行直接把
list1的元素转成字符串后用空格连接,作为表格的列标题; - 对于
list2里的每个元素j(也就是每行的开头数字),我们先把j转成字符串,再通过列表推导式遍历list1的每个元素i,调用calc(i,j)得到结果并转成字符串,把这些内容拼成一行后打印。
如果后续需要更美观的对齐(比如结果位数不一致时),可以用格式化字符串来固定宽度,比如把str(calc(i,j))改成f"{calc(i,j):2d}",这样每个数字都会占2个字符宽度,输出会更整齐~
内容的提问来源于stack exchange,提问作者pat90
相关产品推荐
相关产品推荐

