gpt4 book ai didi

python - 如何在调用函数后存储输出并在下次运行中使用它

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:19 25 4
gpt4 key购买 nike

我在解释器中运行了以下代码并调用了 union 函数

quick_find(10).union(3,4)

输出:[0,1,2,4,4,5,6,7,8,9]

quick_find(10).union(0,4)

输出:[4,1,2,3,4,5,6,7,8,9]

当我第二次调用 union 函数时,输出列表应该是这样的
[4,1,2,4,4,5,6,7,8,9]

但它却给了我 [4, 1, 2, 3, 4, 5, 6, 7, 8, 9] 作为输出。我怎样才能得到我想要的输出。请推荐

class quick_find:

def __init__(self,n):
self.id = [number for number in xrange(n)]


def union(self,x,y):
j = 0
elements = self.id
for i in elements:
if i == elements[x]:
elements[j] = elements[y]
j = j+1

self.id = elements
return elements

最佳答案

您实际上每次都在新实例上调用 union() 方法:

代码的改进版本:

class Quick_find:
def __init__(self,n):
self.id = range(n) #just range() is enough

def union(self,x,y):
for i,elem in enumerate(self.id): #use enumerate() for indexes
if elem==x:
self.id[i]=y

def show(self):
print self.id

q=Quick_find(10) #create a instance
q.union(3,4) #call union on that instance
q.union(0,4) #call union on that instance
q.show()

输出:

[4, 1, 2, 4, 4, 5, 6, 7, 8, 9]

关于python - 如何在调用函数后存储输出并在下次运行中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728955/

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