REGION,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010
Alabama,2138093,2348174,2646248,2832961,3061743,3266740,3444165,3893888,4040587,4447100,4779736
Alaska,64356,55036,59278,72524,128643,226167,300382,401851,550043,626932,710231
내 문제는 내가 처음 읽을 때 그것을 읽으십시오.
REGION,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010
처음에는 문제가되지 않습니다. 하지만 목록
lijst_eerste_regel = self.eerste_regel.split(",")
에 너무 많은 분할에 대한 문자열을보고 한 후 STR (2010)의 인덱스를 찾아하지만 파이썬은 다음 '2010'를 찾을 것으로 보인다 이후에하지 "2010". 따라서 색인을 찾을 수 없습니다. 내가 바로 여기에 코드를 게시
당신의 코드가 2010에 이르는 몇 가지 문제가 발견되지되고 있었다
import io
class Volkstelling:
def __init__(self,jaartal,csvb):
"""
>>> vs2010 = Volkstelling(2010, 'vs_bevolkingsaantal.csv')
"""
import csv
self.jaartal = jaartal
self.csvb = csvb
self.eerste_regel = next(self.csvb)
if str(jaartal) not in self.eerste_regel:
raise AssertionError ("geen gegevens beschikbaar")
def inwoners(self, regio):
lijst_eerste_regel = self.eerste_regel.split(",")
plaats_jaartal = lijst_eerste_regel.index(self.jaartal) # here is where the error occurs
data = """REGION,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010
Alabama,2138093,2348174,2646248,2832961,3061743,3266740,3444165,3893888,4040587,4447100,4779736
Alaska,64356,55036,59278,72524,128643,226167,300382,401851,550043,626932,710231"""
v = Volkstelling('2010',io.StringIO(data))
v.inwoners('Alabama')
## ValueError: '2010' not in list
'lijst_eerste_regel.index (STR (self.jaartal))'? 'inwoners'가 아닌 '__init__'에서 문자열로만 변환합니다. 또는 데이터를 분할 한 후 변환합니다 (예 : self.eerste_regel.split (".")]'에서 list comprehension list_eerste_regel = [int (s) for s를 사용한다. – jonrsharpe
lijst_eerste_regel.index (str (self.jaartal)) 이것은 내가 직접 시도한 것이지만 "2010"대신 "2010"을 찾습니다. 두 번째 옵션은 내가 얻지 못하는 것입니다. lijst_eerste_regel = self.eerste_regel.split (",") 또는 대신에 이것을 입력하십시오. –
''2010 '== "2010"'. 그것 대신 * 분할을 포함합니다. – jonrsharpe