【发布时间】:2017-05-17 12:22:35
【问题描述】:
我想定义一个函数,它采用变体长度list,然后对list 中的每个元素(字典)执行for 循环。
为了更具体,我提供了 3 个实例来说明我想要实现的目标:
# preparation: create a dict to hold the data
result = dict()
for event in target.outcomes:
result[event] = 0
#### Instance 1.
parent_list = [parent0,parent3] # element of the list is dict
for key0,value0 in parent0.items():
for key1, value1 in parent3.items():
for t_key, t_value in target.pmfs[(key0,key1)].items(): # current node
result[t_key] += t_value*value0*value1
#### Instance 2.
parent_list = [parent0] # element of the list is a dict
for key0, value0 in parent0.items():
for t_key, t_value in target.pmfs[(key0,)].items(): # current node
result[t_key] += t_value*value0
#### Instance 3.
parent_list = [] # element of the list is a dict
for t_key, t_value in target.pmfs[()].items(): # current node
result[t_key] += t_value
所需结构:
def(target, parent):
result = dict()
for event in target.outcomes:
result[event] = 0
...
return result
【问题讨论】:
-
递归例程在这种情况下可能会有所帮助
-
也许你应该使用递归
-
你将如何处理最后一个
for循环中的target.pmfs[()],因为它的值取决于之前的for循环。
标签: python list python-3.x for-loop