有没有办法将smth附加到If

时间:2018-02-22 09:52:59

标签: python-3.x list global-variables

我的情况:

list = []

def function(x):
   if ...: 
      list.append(x)
   else:
      list = []

当我尝试将smth添加到我的列表python中时:

UnboundLocalError: local variable 'list' referenced before assignment

我使用python 3,在python 2中我没有任何问题

我们已经看到,当我们使用变量时,它是可能的。我们改变它们,但列表怎么样?

2 个答案:

答案 0 :(得分:0)

list = []

def function(x):
   if x==1: 
      list.append(x)
   else:
      list[:] = []

function(1)
print(list)

答案 1 :(得分:0)

解决上述问题的方法是

list = []

def function(x):
    if True:
        global list
        list.append(x)
    else:
        list = []

function(12)
print(list)

错误是因为你还没有提到哪个列表,所以列表必须在关键字global的函数中提及,然后我们就可以使用它。 PS True是为了方便而不使用关键字作为变量名。