完成此

时间:2016-11-18 00:07:17

标签: python random

我通过以下函数运行一个空列表,列表为gp。我的想法是在列表的末尾添加一个字母,然后在它达到9的长度后重置它。但是,只要gp达到9个字符,它就会停止追加新的字母。 def upd(gp): gp.append(random.choice(string.letters)) if len(gp) > 9: gp = []

1 个答案:

答案 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)。