完成此操作后,Python列表不会重置

2024-05-23 21:11:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 函数列表stringlenifdef字母random
1条回答
网友
1楼 · 发布于 2024-05-23 21:11:49

设置gp = []不会改变list gp,它只是将局部变量gp重新绑定为空列表。外部列表(传递给gp中的函数)不受此重新绑定的影响。你知道吗

您需要做的是从列表中显式删除这些项。您可以这样一次性删除所有项目:

def upd(gp):
    gp.append(random.choice(string.letters))
    if len(gp) > 9:
        gp[:] = []

现在这将改变列表gp,有效地删除它的所有项。还有其他方法可以做到这一点,例如del gp[:]也可以,而在python3中gp.clear()(谢谢@peterdegloper)。你知道吗

相关问题 更多 >