在命令中迭代字符串

2024-09-29 19:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下代码:

n = 2
disc_weights = np.random.uniform(0, 2 * np.pi, 4*n)

phi =     (disc_weights[0] * QubitOperator('X0') + 
           disc_weights[1] * QubitOperator('Y0') +
           disc_weights[2] * QubitOperator('Z0') +
           disc_weights[3] * QubitOperator('X1') +
           disc_weights[4] * QubitOperator('Y1') +
           disc_weights[5] * QubitOperator('Z1') + 
           disc_weights[6] * QubitOperator('')   + 
           disc_weights[7] * QubitOperator('')   )

其中,QubitOperator是我正在使用的包中的一个命令。我如何能够自动地迭代X,Y,Z,1,2…n并创建phi

这在某种程度上起到了作用,但还没有完全达到目的

phi=  functools.reduce(operator.add, (1 * QubitOperator(f'{a}{n}') for  a,n in itertools.product(["X", "Y", "Z"], range(n))))

Tags: 代码nppirandomuniformdiscx1phi
1条回答
网友
1楼 · 发布于 2024-09-29 19:28:41
n = 2

disc_weights = np.random.uniform(0, 2 * np.pi, 4*n)

iter_ = itertools.product('XYZ', range(n))

tuple_wrapper = lambda t: f'{t[0]}{t[1]}'

sum_ = 0.0 * QubitOperator('')
for dw in disc_weights:
    try:
        sum_ += dw * QubitOperator(tuple_wrapper(next(iter_))) 
    except StopIteration:
        sum_ += dw * QubitOperator('') 

相关问题 更多 >

    热门问题