【发布时间】:2020-07-03 04:16:49
【问题描述】:
当我压缩 2 个列表以创建一个 python 字典时,只返回一个 k,v,但我的 2 个列表的长度 = 5。
我的列表如下所示:
Date_List = ['2019-11-04', '2019-11-04', '2019-11-04', '2019-11-04', '2019-11-04']
Gains_List = [0.0, -0.16873767942313656, 0.7362161773647236, -0.13807995856330857, 0.2844974266425382]
两者的长度是相等的,所以,我尝试使用dict理解创建一个dict:
accumulated = {k: v for k, v in zip(new_data_list, ganhos)}
但是,当我打印累积时,返回只有一个值,例如:
{'2019-11-04': 0.2844974266425382}
发生的另一件事是日期 '2019-11-04' 的值 0.00 但是当我压缩时,dict 获取 Gains_List 中的最后一个值并放入在字典中的第一个值中。
结果应该是这样的:
{2019-11-04: 0.000000, 2019-11-05: -0.168738, 2019-11-06: 0.736216, 2019-11-07: -0.138080, 2019-11-08: 0.284497}
【问题讨论】:
-
其他日期是从哪里来的?您的第一个列表只有
2019-11-04 -
键在字典中总是唯一的。你的 5 把钥匙是一样的,所以只保留最后一把。
-
正如@schwobaseggl 所说,键在字典中是唯一的。我认为您想要的可能是元组列表,例如
[('2019-11-04', 0.0), ('2019-11-04', -0.16...), ...]。您可以像这样创建一个元组列表accumulated = [(Date_List[i], Gains_List[i]) for i in range(len(Date_List))] -
对不起,伙计们。现在,在@MadsNielsen 向我展示了日期之后,我发现在创建日期时,我选择了错误的字段。很抱歉您在这篇文章上花费的时间。
标签: python list dictionary zip dictionary-comprehension