gpt4 book ai didi

Python:使用另一个大字典更新一个大字典

转载 作者:太空狗 更新时间:2023-10-29 17:56:55 24 4
gpt4 key购买 nike

我正在尝试使用具有相似键(相同日期但格式不同)的另一本字典中的值来更新大型字典的某些值。我目前使用的流程太慢了,我想减少瓶颈。

这是我目前的解决方案(它将更新的字典写入文件):

from dateutil import parser
File = open(r'E:Test1.txt','w')

b = {'1946-1-1':0,..........,'2012-12-31':5}
d = {'1952-12-12':5,........,'1994-7-2':10}

for key1, val1 in b.items():
DateK1 = parser.parse(key1)
Value = val1
for key2, val2 in d.items():
DateK2 = parser.parse(key2)
if DateK1 == DateK2:
d[key2] = Value

Order= sorted(d.items(), key=lambda t: t[0])

for item in Order:
File.write('%s,%s\n' % item)
File.close()

最佳答案

你应该使用 update合并字典的方法:

b.update(d)

.

目前您正在为 b 中的每个键迭代 d... 这很慢。您可以通过设置两个具有匹配键的字典来解决这个问题(相等的日期将散列相同的 - 也许这里要注意的很酷的事情是 datetime 对象散列):

b1 = dict( (parser.parse(k),v) for k,v for b.iteritems() )
d1 = dict( (parser.parse(k),v) for k,v for d.iteritems() )

d1.update(b1) # update d1 with the values from b1

编辑:

我刚刚意识到您没有完全进行更新,因为只有那些共享值正在更新,因此(再次通过迭代一次):

for k_d1 in d1:
if k_d1 in b1:
d1[k_d1] = b1[k_d1]

关于Python:使用另一个大字典更新一个大字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12717716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com