在我正在编写的一个Python程序中,我将使用一个关联数组(字典),它将年度值作为键和12个月度观察列表作为值。例如读我的数据到字典后,我最终可能看起来像这样一本字典(3个键指向12个值的3名名单):在Python中,你如何初始化/重新初始化关联数组(字典)?
{ 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个值的列表,其中第一个值是一年后跟随十二个月度观察值)。我是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个元素的整数列表?
在此感谢您的理解。
感谢这个明确的例子。没有什么比使用{}声明/初始化字典更方便了吗? –
@JamesAdams'{}'是字典的字面语法,还有'dict()'是同样的东西(但可以将迭代作为参数并且有一些类方法等),但是yup - ' d = {}'初始化一个空字典... –
谢谢澄清,乔恩。 –