2013-10-25 312 views
0

列表列表正在踢我的屁股。我已经做了大量的研究,试图找到如何更新列表中的第n个列表的第n个元素列表中的Python数据结构。我看到很多关于更新第n个元素或将列表组合到现有列表中的建议,但没有更新嵌套列表中的特定元素。更新嵌套列表中第n个元素的第n个元素

我的实际代码通过搜索tid的文件读取:somestring然后将tid:somestring添加到集合中。我现在想循环遍历集合,并将每个事件的值设为0。我在代码中的下一步将为第一个y添加另一个搜索项目,以查找先前放置在第y个y位置(对于其余搜索值)的相应tid值。我计划增加一个计数器来移动索引值x ...本质上,我需要更新一个二维数组。有9个值将在y轴上。 X轴取决于tid唯一实例的数量:somestring,每个文件的值为10,000或更多。

如何更新/插入或以其他方式更改列表中第n个列表的第n个项目?

samlfile="2013-08-18 22:47:55,248 tid:b7c31fbac DEBUG" #I have a file with 10000+ "tid" 
tidset = set() 
tidcount = len(tidset) 
tidassert = [[0 for x in range(tidcount)] for y in range(9)] 
xcount = 0 


for line in samlfile: 

    if "tid:" in line: 
     str=line 
     tid = re.search(r'(tid:.*?)(?=)', str) 
     if tid.group() not in tidset: 
      tidset.add(tid.group()) 
      tid = tid.group() 
      for tid in tidset: 
       tidassert[xcount][0] = tid 
      xcount = xcount + 1 

     print tidassert 

回答

1
try: 

    _list[n][n] = 'new val' 

except IndexError: 

    print 'No such index' 
+0

谢谢你的resonse,但我基本上做的是,在我的代码。 tidassert [xcount] [0] = tid,没有错误处理。除非,我误解了这个建议。如果是这样,你能详细说明一下吗? –

+0

你的机器是'更新/插入或以其他方式改变第n个列表的第n个项目',如果没有这样的'indices'或'不可访问的'它会抛出'IndexError'这个试图修改值。 –