gpt4 book ai didi

python - 如何在python中显示表格中每一行和每一列的总和

转载 作者:行者123 更新时间:2023-12-01 07:52:27 26 4
gpt4 key购买 nike

我正在尝试编写一个 python 程序,该程序创建一个 10 x 10 表(数组),并自动用 100 个范围从 1 到 250 的随机整数填充该表。然后该程序应该显示每行和每列的总和这个表。

我的程序当前输出一个包含 100 个随机整数的表,以及每行的总和。但是它无法生成每列的总和。

import random

dash = "-" * 62

print("Random Integer Table:")

print(dash)
print("{:<10s} {:>45s}".format("RANDOM INTEGERS", "ROW TOTAL"))
print(dash)

for rows in range(10):
random_list = [random.randrange(1,251, 1) for rows in range(10)]
stringList = [str(i) for i in random_list]
row_total = sum(random_list)

print("{:<3} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4}".format(stringList[0], stringList[1], stringList[2], stringList[3], stringList[4], stringList[5], stringList[6], stringList[7], stringList[8], stringList[9]), "{:17d}".format(row_total))

print(dash)
print("COLUMN TOTAL")
print(dash)

sum(random_list(zip([0])))

该程序当前输出以下内容:

Random Integer Table:
--------------------------------------------------------------
RANDOM INTEGERS ROW TOTAL
--------------------------------------------------------------
71 29 33 69 6 188 167 158 126 892
100 114 109 89 237 168 25 201 43 1173
91 51 62 220 63 10 85 79 104 796
54 189 69 36 218 130 204 76 93 1289
113 36 104 81 18 215 53 169 103 925
92 20 206 16 116 69 237 168 212 1253
116 86 115 62 189 234 158 240 207 1602
35 101 234 25 41 136 73 154 197 1102
97 81 13 86 26 140 220 42 180 1132
118 117 134 170 237 212 89 140 124 1529
--------------------------------------------------------------
COLUMN TOTAL
--------------------------------------------------------------

但是出现错误:

TypeError: 'list' object is not callable
当尝试打印每列的总计时,

出现在我的代码的第 30 行(最后一行)中。有什么方法可以正确地总结这些列和/或提高程序的效率吗?谢谢。

最佳答案

一种解决方案是在迭代每行的同时保存列的总和。这是一种方法:

import random
dash = "-" * 62

print("Random Integer Table:")

print(dash)
print("{:<10s} {:>45s}".format("RANDOM INTEGERS", "ROW TOTAL"))
print(dash)
# Initialize a list that will have the sum of each column
sum_col = [0 for _ in range(10)]

for rows in range(10):
random_list = [random.randrange(1, 251, 1) for rows in range(10)]

# Save the current sum of each columns
sum_col = [x + sum_part for x, sum_part in zip(random_list, sum_col)]

stringList = [str(i) for i in random_list]
row_total = sum(random_list)

print("{:<3} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4}".format(stringList[0], stringList[1], stringList[2], stringList[
3], stringList[4], stringList[5], stringList[6], stringList[7], stringList[8], stringList[9]), "{:17d}".format(row_total))

print(dash)
print("COLUMN TOTAL")
print(dash)

print("{:<3} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4} {:>4}".format(sum_col[0], sum_col[1], sum_col[2], sum_col[
3], sum_col[4], sum_col[5], sum_col[6], sum_col[7], sum_col[8], sum_col[9]), "{:17d}".format(sum(sum_col)))

# Random Integer Table:
# --------------------------------------------------------------
# RANDOM INTEGERS ROW TOTAL
# --------------------------------------------------------------
# 147 54 61 56 183 172 228 110 241 1260
# 211 77 80 148 237 98 30 99 8 1016
# 216 241 200 31 218 122 183 34 118 1420
# 34 147 195 115 61 69 208 155 96 1203
# 174 27 39 40 99 241 11 92 114 838
# 102 131 8 130 22 225 80 152 159 1032
# 129 30 122 87 142 245 202 97 40 1280
# 219 226 147 153 217 242 154 129 39 1585
# 186 37 123 168 12 152 105 225 57 1072
# 120 243 146 39 216 50 177 208 36 1434
# --------------------------------------------------------------
# COLUMN TOTAL
# --------------------------------------------------------------
# 1538 1213 1121 967 1407 1616 1378 1301 908 12140

如果您可以使用numpy,请使用它!更简单:)希望有帮助!

关于python - 如何在python中显示表格中每一行和每一列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com