2d列表无效

时间:2015-11-19 18:47:10

标签: python list grid

我正在尝试创建一个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

一切正常,除了试图处理信息。

3 个答案:

答案 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数组。

相关问题