我有4个列表,其中2个有一对一的关联,我用另外两个来施加条件。A列表只是事物的列表,而B是与A中的每个元素相关联的“概率”列表。例如,A[A,B]中的第一个元素与B[0.12]中的第一个元素相关联
A=[[a, b], [c, f], [g, m], [h, j], [c, f], [g, m]]
B=[[0.12], [0.45], [0.98], [0.56], [0.34], [0.78]]
第三个和第四个列表(C,D)是fallows
C=[[c, f], [g, m]]
D=[[[a, b], [h, j]]
我想通过A迭代,找到A和C之间的所有公共元素,并将它们放入E中的嵌套列表中,对A和D执行相同的操作(并将它们放入E中的另一个列表中)。同样,将这些相关的概率汇总到F中的嵌套列表中。我算出的代码是fallows
E=[[ ], [ ]]
F=[[0], [0]]
for i in A:
if i in C:
E[0].append(i)
F[0]= F[0]+ B[i]
for i in A:
if i in D:
E[1].append(i)
F[1]= F[1]+B[i]
这给出了“索引必须是整数,而不是列表”的错误。我不确定问题到底是什么,或者是否有更好的总体方法来解决概率问题,但我非常感谢您的帮助/建议
在仔细阅读之后,我能够理解你想要做什么
您可以将其用于您的任务:
我已经删除了您使用的
E
和F
。用更好的方法来存储你想要的东西-common_in_a_c
和common_in_a_d
是字典-它会保存你感兴趣的值。 在这里,我将整个列表存储在common_in_a_c['probabilities']
=>;您可以在其上执行sum()
以获取sum of probabilities
代码中的问题是
B[i]
中使用的loop
=>B[i]
不起作用,因为i
不是index
而是elements in A
。因此,我将逻辑更改为使用index-based-loop
相关问题 更多 >
编程相关推荐