」が、私はこのようになりますPythonでCSVファイルで読んでいます:読取ライン「」ではなく「(クラス)
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)のインデックスを探しますが、Pythonは、その後「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