Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何聚合每日温度数据以将月份用作python字典中的键?_Python_Python 3.x - Fatal编程技术网

如何聚合每日温度数据以将月份用作python字典中的键?

如何聚合每日温度数据以将月份用作python字典中的键?,python,python-3.x,Python,Python 3.x,我是python的新手,所以请原谅我,如果这看起来很简单,我无法理解 家庭作业要求我们“编写python代码,读取一年中每个月的每日温度数据。制作三本字典,MinT,AvgT,和MaxT,每个字典都有月号(1..12)“我需要在不使用pandas和numpy的情况下这样做,因为这些是作业的下一个问题 我正在努力开始。我正在尝试从MinT开始,看看是否可以让代码正常工作,但失败了多次。到目前为止我已经 import csv weather = csv.DictReader(open(...))

我是python的新手,所以请原谅我,如果这看起来很简单,我无法理解

家庭作业要求我们“编写python代码,读取一年中每个月的每日温度数据。制作三本字典,
MinT
AvgT
,和
MaxT
,每个字典都有月号(1..12)“我需要在不使用pandas和numpy的情况下这样做,因为这些是作业的下一个问题

我正在努力开始。我正在尝试从
MinT
开始,看看是否可以让代码正常工作,但失败了多次。到目前为止我已经

import csv

weather = csv.DictReader(open(...))
MinT = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
min_t = []
for r in weather:
    min_t.append(float(r['LowT']))
输出是该年的所有最小值,但我不确定如何将每日数据聚合到可以使用月份作为关键字的位置


任何帮助都将不胜感激。

要创建字典,其中键为数字月份,值为列表,您需要:

MinT = {1:[], 2:[], 3:[], 4:[], 5:[], 6:[], 7:[], 8:[], 9:[], 10:[], 11:[], 12:[]}
但是,使用循环进行初始化更容易:

MinT = {}
for x in range(12):
 MinT[x+1] = []
或词典理解:

MinT = {month_num + 1: [] for month_num in range(12)}

下面是一个自包含的示例,使用:


目前,
MinT
是一个集合而不是字典。字典可以初始化为空,因为
MinT={}
但是在那之后,你需要有键值对,这
{1,2,3,4,5,6,7,8,9,10,11,12}
不是知道输入的形式真的很有帮助。别忘了字典的理解:)
MinT={month_num+1:[]用于month_num的范围(12)
from random import randint

def generate_temperatures():
    return [randint(60, 92) for day in range(randint(28, 31))]

# This simulates loading your data
annual_temperatures = {month_num + 1: generate_temperatures() for month_num in range(12)}

# This calculates the goods :)
avg_monthly_temperature = {month: sum(temp)/len(temp) for (month, temp) in annual_temperatures.items()}
min_monthly_temperature = {month: min(temp) for (month, temp) in annual_temperatures.items()}
max_monthly_temperature = {month: max(temp) for (month, temp) in annual_temperatures.items()}