Python 如何保留集合()的值?

Python 如何保留集合()的值?,python,python-2.7,set,Python,Python 2.7,Set,编写此函数是为了将当前_值存储到以前的_值中,以便在第二次运行此函数时,我希望得到以前的值和当前值之间的差值。但每次运行此函数时,以前的_值都会设置为[] 基本上我想保存之前的_值,当我第二次运行这个函数时,我会得到两个值的差值 current_values=set(["guy","guy1", "guy3"]) def remove_stale_values(previous_values, current_values): todelete = previous_values -

编写此函数是为了将当前_值存储到以前的_值中,以便在第二次运行此函数时,我希望得到以前的值和当前值之间的差值。但每次运行此函数时,以前的_值都会设置为[]

基本上我想保存之前的_值,当我第二次运行这个函数时,我会得到两个值的差值

current_values=set(["guy","guy1", "guy3"])

def remove_stale_values(previous_values, current_values):
    todelete = previous_values - current_values
    previous_values.clear()
    for elements in current_values:
        previous_values.add(elements)

    for value in todelete:
       #do something
       print "done"

def m(previous_values, current_values):
    remove_stale_values(previous_values, current_values)

m(set(), current_values)

您需要使用一个变量来保存以前的值,这样更新后的值就可以重用

 todelete = previous_values - current_values

修正你的缩进?最后一行应该是函数内部的递归调用吗?什么是
以前的\u度量
当前的\u度量
?如果这些值是
以前的值
当前的值
?以前的集是一个空集。因此,当从中减去时,在
todelete
defm(set(),current_values)中会得到另一个空集:
没有意义。您没有将函数调用放在参数列表中。您没有将更新的
以前的\u值保存到任何位置,因此您希望如何第二次使用它?
previous_values = set()
m(previous_values, current_values)
# do stuff
m(previous_values, current_values)