在reduce函数中可以有两个iterable吗?(Python)

2024-10-04 03:22:07 发布

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

假设我有以下命令(使用Python和Qiskit):

a = reduce(lambda x,y: x.compose(y,c),circli, qcla)

qcla是初始值设定项)

这里,compose是一个内部qiskit函数,x和y是列表circli(iterable)的元素。我想知道我是否可以在这个reduce函数中添加另一个iterable?这里,c本身在(y,c)中表示一个坐标,比如[2,3],我希望它也能得到更新。我是否可以创建另一个包含所有可能的c的列表,并将其添加为另一个iterable?谢谢


Tags: lambda函数compose命令元素reduce列表iterable
1条回答
网友
1楼 · 发布于 2024-10-04 03:22:07

可以减少对的列表(iterable),也可以在末尾创建对。对于第一个,您需要zip函数,对于后一个,您需要修改lambda函数以返回元组。例如:

a, x_sum = reduce(lambda x,y: (x[0].compose(y[0], y[1]), x[1][0]+y[1][0]), zip(circli, cs), (qcla, 0))

我在这里使用名称cs作为c值的列表

zip创建circlics项对,您可以遍历这些对。在本例中,我还得到了c值的x坐标之和作为结果

如果cs中的值是示例(cs = [c]*len(circli))中的常量c,则结果中的a与示例中的相同

相关问题 更多 >