【发布时间】:2015-06-24 05:55:54
【问题描述】:
我有这样的字典
data = {
'a': [95, 93, 90],
'b': [643, 611, 610]
}
我想遍历字典并从每个项目的值列表中获取键和值,就像这样
{'a': 95, 'b': 643}
{'a': 93, 'b': 611}
{'a': 90, 'b': 610}
我已经实现了这个逻辑并且它工作正常,但是当我看到在进程中创建的temp_dict 时,我看到了很多中间不必要的循环。最终结果效果很好,但我认为它可以改进很多。
import timeit
data = {
'a': [95, 93, 90],
'b': [643, 611, 610]
}
def calculate(**kwargs):
temp_dict = {}
index = 0
len_values = list(kwargs.values())[0]
while index < len(len_values):
for k, v in kwargs.items():
temp_dict[k] = v[index]
index += 1
yield temp_dict
start_time = timeit.default_timer()
for k in (calculate(**data)):
print(k)
print(timeit.default_timer() - start_time)
如何更有效地做到这一点?
【问题讨论】:
-
既然你有一个工作代码,我认为你应该把它发布在代码审查部分。
标签: python dictionary