2017-10-23 1 views
-3

본질적으로 사전을 사용하여 카운트를 만들고 텍스트 파일에 "1"이 표시 될 때마다 array.However, 나는 오류TypeError : 목록에만 연결 가능 ("int"가 아님) [사전 사용]

Letters = ["A","B,"C","D","E","F"] 
d= {} 
d["A"] = [0] 
d["B"] = [0] 
d["C"] = [0] 
d["D"] = [0] 
d["E"] = [0] 
file = open('test1.txt','r') 
for line in file: 
    line_array = line.strip("\n").split(",") 
    for x in range(5): 
     if line_array[x] == "1": 
      for y in Letters: 
       d[y][0] = d[y][0] + 1 

이 BTW, 텍스트 파일은 다음과 같이 포맷가 계속;

1,0,3,0,2 
0,2,1,0,3 
ETC 

편집 죄송합니다, 당신은 실제로 사전을 사용하지 않을

+2

단순한 정수를 통해 실제로 목록을 사용하는 이유를 알 수 없습니다. –

+0

(머리 부분을 긁음), 어떻게 문자열로리스트 인덱스에 액세스 할 수 있습니까? –

+1

'Letters'는 코드에서'dict'이 아닌'list'입니다 (첫 번째 줄 참조). 'd'는 사전이지만 사용하지는 않습니다. – martineau

답변

1

을 misworded.

Letters= ["A","B","C","D","E"] 
d= {key: 0 for key in Letters} 
print(Letters) 
file = open('test1.txt','r') 
for line in file: 
    line_array = line.strip("\n").split(",") 
    for x in range(5): 
     if line_array[x] == "1": 
      for i, value in enumerate(Letters): 
       if i == x: 
        d[value] = d[value] + 1 
#print(candidatescores) # No idea where this comes from 
+0

그러면 텍스트 파일의 모든 줄이 합쳐지고 각 키의 값은 동일합니다. – somebrick

+0

고정. 이것은 당신이 사전을 원한다는 것을 기반으로하지만, 독자적인 문제는 일반 목록/튜플을 사용하면 훨씬 더 사소 할 것입니다. – ividito

+1

csv 파일을 읽을 때 csv를 사용하지 않는 이유는 무엇입니까? 또한,'''i = x'''에 등호가 없습니다. '''line.rstrip()'''은 개행을 제거합니다. 마지막으로,'''file''는 파이썬에서 예약어입니다 :) –

관련 문제