from functools import reduce
letters = ['X', 'Y', 'Z']
numbers = ['0', '1', '2']
pairs = [f'{l}{n}' for l in letters for n in numbers]
# this gets you ['X0', 'X1', 'X2', 'Y0', ..., 'Z2']
qubits = [QubitOperator(x) for x in pairs]
# not sure the best way to get this into a single phi. join seems logical, but probably doesn't work.
phi = reduce(lambda acc, cur: acc + cur, pairs)
您现有的代码可能更干净,但假设您必须对8个以上的元素执行此操作:
守则概览:
qubits = [...
将成对创建的每个字符串包装在一个QubitOperator中。技术上不需要,如果我自己编码的话,我可能会把它放在第3行QubitOperator('X0') + QubitOperator('X1')+...
正如一位评论者所指出的,for循环在这种情况下也可以工作这里有一个警告:我不是百分之百肯定这会起作用。在最后一步之前的每一步都应该,我认为最后一步也应该,但如果没有任何测试,很难知道
此外,正如您所看到的,我们有效地将8行直接代码转换为4行相对复杂的代码。我不确定是否值得这样做,除非您有大量数据,否则您需要使用新数据频繁重复此过程
相关问题 更多 >
编程相关推荐