2013-10-25 4 views
0

목록 목록이 내 엉덩이를 차고 있습니다. 필자는 목록의 목록에서 n 번째 목록의 n 번째 요소를 업데이트하는 방법을 찾기 위해 상당한 양의 연구를 수행했습니다. Python 데이터 구조. n 번째 요소를 업데이트하거나 기존 목록에 목록을 결합하는 데 많은 조언을 볼 수 있지만 중첩 목록 내의 특정 요소를 업데이트하는 방법에 대해서는 설명하지 않습니다.중첩 목록에서 n 번째 요소의 n 번째 요소를 업데이트하십시오.

내 실제 코드는 tid를 검색하는 파일을 읽습니다. somestring은 tid : somestring을 세트에 추가합니다. 이제 집합을 반복하고 각 값을 0 번째로 만듭니다. 코드의 다음 단계는 이전에 y 번째 위치에 배치 된 해당 tid 값에 대해 첫 번째 y에 다른 검색 항목을 추가합니다 (나머지 검색 값에 대해서도 마찬가지로). x에 대한 인덱스 값을 이동하는 카운터로 증가 할 계획입니다. 기본적으로 2 차원 배열을 업데이트해야합니다. y 축에는 9 개의 값이 있습니다. 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 번째 항목 변경 '입니다,이 하나는 값을 변경하려고합니다. 그런'색인 '또는'접근 불가능한'그것은'IndexError' –

관련 문제