gpt4 book ai didi

python - 如果某些列表组件相同,如何防止列表处理函数进行重复操作?

转载 作者:行者123 更新时间:2023-11-28 19:22:51 26 4
gpt4 key购买 nike

我是编程新手,我在使用 Python 编写的算法时遇到了问题。它首先从一系列变量(每个变量都包含一个列表)中组装一个列表,我需要它能够在一个序列中多次调用同一个变量。然后它像这样处理列表:

a = [1, 2, 3]

b = [4, 5, 6]

c = [a, b]

def function(input):
return output

这样 function(c) 返回 [[1, 2, 3, output_a1], [4,5,6, output_b1]]

如果有人想了解有关该功能的更多信息,我很乐意提供更多信息,但到目前为止我的故障排除让我相信源问题相当简单。我遇到的问题是,如果我像这样在我的主列表中多次调用同一个变量:c = [a, b, a],我想要 function(c) 返回:

[[1, 2, 3, output_a1],
[4, 5, 6, output_b1],
[1, 2, 3, output_a2]]

但是,function() 会在遇到 a 的所有实例时处理它,因此我得到:

[[1, 2, 3, output_a1, output_a3],
[4, 5, 6, output_b1],
[1, 2, 3, output_a1, output_a3]]

我找到了两种方法来解决这个问题,但我真的对它们不满意,我怀疑有更好的方法。在第一种方式中,我打印 c 并将其复制并粘贴到函数中:

function_a([[1, 2, 3], [4, 5, 6], [1, 2, 3]])

这将返回所需的输出。此外,我可以创建另一个与 a 具有相同内容的变量,d = [1, 2, 3],并且 c = [a, b, d]function_a(c) 将再次返回所需的输出。我尝试了多种方法,但似乎如果 c 中的任何元素通过变量链接到另一个元素,那么我就会遇到此错误。由于我将使用可能包含同一元素的多个实例的相当长的序列来运行此算法,因此我真的想要一种干净的方法来修复此错误。非常感谢任何建议,如果需要,我将提供有关该功能的更多详细信息。感谢阅读!

最佳答案

为了防止有人遇到同样的问题,Roberto 回复了 this link它提供了我解决问题所需的所有信息。我几乎不知道,如果我正在使用包含来自同一变量的多个副本的嵌套列表,我需要对其进行深层复制以防止修改列表的任何部分。

关于python - 如果某些列表组件相同,如何防止列表处理函数进行重复操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com