我通过以下函数运行一个空列表,列表为gp
。我的想法是在列表的末尾添加一个字母,然后在它达到9的长度后重置它。但是,只要gp
达到9个字符,它就会停止追加新的字母。
def upd(gp):
gp.append(random.choice(string.letters))
if len(gp) > 9:
gp = []
答案 0 :(得分:3)
设置gp = []
不会改变列表gp
,它只是将本地变量gp
重新绑定为空列表。外部列表(传递给gp
中的函数)不受此重新绑定的影响。
您需要做的是从列表中明确删除项目。您可以像这样一次删除所有项目:
def upd(gp):
gp.append(random.choice(string.letters))
if len(gp) > 9:
gp[:] = []
现在,这将改变列表gp
,有效地删除其所有项目。还有其他方法可以做到这一点,例如: del gp[:]
也可以使用,而{3}可以在Python 3中使用(感谢@PeterDeGlopper)。