【发布时间】:2019-05-14 17:57:08
【问题描述】:
我正在尝试编写一个 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 行(最后一行)中,当尝试打印每列的总数时。有什么方法可以正确总结这些列和/或提高程序的效率?谢谢。
【问题讨论】:
-
错误是不言自明的。您正在尝试调用一个列表,该列表在此处不可调用:
random_list(zip([0]))。如果您尝试使用zip转置技巧,则将其倒退。 -
这是
sum(random_list(zip([0])))行。 Python 认为random_list是可调用的,因为您以参数的形式输入了zip[0]。 -
因为
random_list是你矩阵的最后一行。 -
好的,我了解
sum(random_list(zip([0])))是如何产生错误的,谢谢。由于这种方法不正确,还有其他可能的方法来对列求和吗?
标签: python python-3.x