假设您有一个字典,其键是整数。这些值也是字典,其键是字符串,其值是 numpy 数组。
就像是:
custom = {1: {'a': np.zeros(10), 'b': np.zeros(100)}, 2:{'c': np.zeros(20), 'd': np.zeros(200)}}
我在代码中经常使用这个自定义数据结构,每次我需要迭代这个结构的 numpy 数组中的每一行时,我都必须这样做:
for d, delem in custom.items():
for k, v in delem.items():
for row in v:
print(row)
是否可以将这种行为封装在函数中à laC++,您可以在其中实际实现自定义begin()
and end()
?此外,迭代器还应该具有有关其相应字典中的键的信息。我设想的是这样的:
for it in custom:
d, e, row = *it
# then do something with these
有多种方法可以做到这一点。yield
可能是最简单的,因为它为您完成了构建迭代器类的繁重工作。
def custom_dict_iter(custom):
for d, delem in custom.items():
for k, v in delem.items():
for row in v:
yield d, k, row
for d, k, row in custom_dict_iter(my_custom_dict):
print(d, k, row)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)