Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的迭代_Python_Python 3.x - Fatal编程技术网

python中的迭代

python中的迭代,python,python-3.x,Python,Python 3.x,比如说, [p1,p2,p3]=[0.4,0.3,0.8],k=2。的2-子集 {1,2,3} 以及相应的概率 席 是我的一个iff吗 在子集中的是 {1,2}=0.024=0.4x0.3x1-0.8 {1,3}=0.224=0.4x0.8x1-0.3 {2,3}=0.144=0.3x0.8x1-0.4 {1,2}=0.024 {1,3}=0.224 {2,3}=0.144 因此, PX=k=0.024+0.224+0.144=0.392 这方面的python代码是什么?我试着用itertool

比如说, [p1,p2,p3]=[0.4,0.3,0.8],k=2。的2-子集 {1,2,3} 以及相应的概率 席 是我的一个iff吗 在子集中的是

{1,2}=0.024=0.4x0.3x1-0.8

{1,3}=0.224=0.4x0.8x1-0.3

{2,3}=0.144=0.3x0.8x1-0.4

{1,2}=0.024

{1,3}=0.224

{2,3}=0.144 因此,

PX=k=0.024+0.224+0.144=0.392

这方面的python代码是什么?我试着用itertools.combination,但它
在0x00000218F0129A48处显示itertools.combines对象可能很笨重,但它符合您的要求

import itertools
a = [0.4,0.3,0.8]
l = list(itertools.combinations(a,len(a)-1))
print(l)
x = []
while l:
    b = l.pop()
    for item in a:
        if not item in b:
            multiply = 1
            for s in b:
                multiply = multiply * s
            x.append(multiply * (1 - item))
            print(x[-1])

print(sum(x))
输出:

0.144
0.22400000000000003
0.023999999999999994
0.392

你能给我们看一下你试过的代码吗?把它转换成列表。列表你的组合试图把它转换成列表。它显示float not iterableIf a=[p1,p2,p3],listitertools.combinationsa,2将产生p1,p2,p3的组合。不幸的是,它只适用于3个列表。感谢您的回复。我相信,经过编辑使其适用于3个以上的列表。它确实有效,但输出是错误的。因为只将s[0]*s[1]的值相乘,然后再将该值与剩余项的数量相乘。我不确定此时应如何操作,k是否需要更改?