已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
昨天关门了。
Improve this question
我需要能够将CSV
文件中的多个值追加到一个有三个键的字典中。这些键是morning
、midday
和night
。这些值应该来自CSV
文件的每一行。
理想情况下,它应该如下所示。
我不能使用numpy
或csv
模块,所以这些选项不可用。它必须在没有导入的情况下工作,而且我不确定如何使用字典和如何处理它来获得我需要的输出。
以下是CSV
文件的示例:
{
'morning': {[5, 5, 10, 17, 20, 21]},
'midday': {[10, 20, 25, 15, 8, 3]},
'night': {[3, 5, 2, 7, 15, 29]}
}
下面是我的代码:
time_list = []
time_dict = {}
with open('stats.csv', 'r') as data_file:
headers = data_file.readline()
for line in data_file:
Time, VS = line.split(',')
time_list.append(int(VS))
time_dict[Time] = time_dict.get(Time, 0) + int(VS)
追加到列表中会生成每个值,即:
[2, 3, 4, 5, 6, 7, 8]
但是对于字典,它并不单独显示它所附加到的键的每个值,而是将每个键的所有值加在一起。
打印字典时会显示以下内容:
{'morning': 2097, 'midday': 1240, 'night': 1533}
我不确定如何处理这个问题,使字典看起来像下面这样:
{
'morning':{[5, 5, 10, 17, 20, 21]},
'midday': {[10, 20, 25, 15, 8, 3]},
'night': {[3, 5, 2, 7, 15, 29]}
}
注意:我找到的许多答案都使用了csv
模块,但不幸的是,我不能使用它。
字典的keytype也必须是int,这样我就可以在字典上执行数学运算,找出最大值、最小值、平均值等
2条答案
按热度按时间ifmq2ha21#
我会这样做:
从评论“我不能使用导入”:
来自注解“数据在第八列”:
稍微修改一下(假设是Python 3),你可以设置
*vs
,这样vs
在展开式中接受一个变量:给定此文件:
印刷品:
j91ykkif2#
不如这样改变你的策略: