私が書いているPythonプログラムでは、キーとして年の値を持ち、値として12か月の観測値のリストを持つ連想配列(辞書)を使用します。たとえば、データを辞書に読み込んだ後、次のような辞書が作成される可能性があります(12個の値の3つのリストを指す3つのキー)。
{ 1953:[34,39,29,12,16,14,35,42,44,31,22,29],
1954:[30,31,32,11,19,22,31,41,34,37,25,22],
1955:[35,36,37,15,19,25,30,45,38,39,21,26] }
辞書にデータを読み込むたびに、キーと値のペアの数が異なる場合があります。ファイルからデータを読み取るループの各反復の開始時に空の辞書から始めたいと思います(簡単にするために、13個の値のコンマ区切りのリストであると仮定します。最初の値は年で、その後に12個の月次観測値が続きます。 )。私はPythonを初めて使用するので、Pythonでこの種のことを行うためのベストプラクティスを学びたいと思います。Javaでは、次のようにします。
for (int i = 0; i < 3; i++)
{
Map<String, List<String>> yearToObservationsMap= new HashMap<String, List<String>>();
String line = bufferedReader.readLine();
while (line != null)
{
line = bufferedReader.readLine();
List<String> yearPlusObservations = line.split(",");
String year = yearPlusObservations.remove(0);
yearToObservationsMap.put(year, yearPlusObservations);
}
// now I can work with the dictionary to process the data
}
私のユースケースは、使用するたびに辞書に可変数のエントリが必要になるため、ロードする前に毎回再初期化(または空?)したいというものです。たとえば、ある反復中に5年間のデータがあり、次の反復には30年間のデータがあり、次の反復には17年間のデータがあります。したがって、各反復で辞書をクリアしたいと思います。しかし、明確な形式を与える方法で辞書を宣言したいのでしょうか。つまり、年であるキーと常に整数の12要素リストである値を持つことが常に知られているのでしょうか。
これを理解するためにあなたの助けを事前に感謝します。