我正在尝试创建一个2D列表,并且我一直得到相同的错误" TypeError:list indices必须是整数,而不是元组"我不明白为什么,或者如何正确使用2D列表。
Total = 0
server = xmlrpclib.Server(url);
mainview = server.download_list("", "main")
info = [[]]
info[0,0] = hostname
info[0,1] = time
info[0,2] = complete
info[0,3] = Errors
for t in mainview:
Total += 1
print server.d.get_hash(t)
info[Total, 0] = server.d.get_hash(t)
info[Total, 1] = server.d.get_name(t)
info[Total, 2] = server.d.complete(t)
info[Total, 3] = server.d.message(t)
if server.d.complete(t) == 1:
Complete += 1
else:
Incomplete += 1
if (str(server.d.message(t)).__len__() >= 3):
Error += 1
info[0,2] = Complete
info[0,3] = Error
一切正常,除了试图处理信息。
答案 0 :(得分:4)
您的错误在于访问2D列表,修改:
info[0,0] = hostname
info[0,1] = time
info[0,2] = complete
info[0,3] = Errors
为:
info[0].append(hostname)
info[0].append(time)
info[0].append(complete)
info[0].append(Errors)
同样适用于info[Total, 0]
等等。
答案 1 :(得分:1)
您创建info
的方式,它是一个只包含一个元素的列表,即一个空列表。使用列表时,您必须处理嵌套项目,如
info[0][0] = hostname
对于初始化,您必须通过以下方式创建列表列表:
# create list of lists of 0, size is 10x10
info = [[0]*10 for i in range(10)]
使用numpy
数组时,您可以像处理的那样处理元素。
"列表列表的一个优点"并不是" 2D列表的所有条目"应具有相同的数据类型!
答案 2 :(得分:-1)
info = [[] for i in range(4)] # create 4 empty lists inside a list
info[0][0].append(hostname)
info[0][1].append(time)
info[0][2].append(complete)
info[0][3].append(Errors)
您需要先创建2d数组。