首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python列表在完成以下操作后不会重置

Python列表在完成以下操作后不会重置
EN

Stack Overflow用户
提问于 2016-11-18 00:07:17
回答 1查看 400关注 0票数 0

我正在通过下面的函数运行一个空列表,列表是gp。这样做的目的是在列表的末尾添加一个字母,然后在它达到9的长度时重新设置它。然而,一旦gp到达9个字符,它就会停止添加新的字母。def upd(gp): gp.append(random.choice(string.letters)) if len(gp) > 9: gp = []

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-18 00:14:18

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

您需要做的是显式地从列表中删除这些项。您可以一次删除所有项目,如下所示:

代码语言:javascript
复制
def upd(gp):
    gp.append(random.choice(string.letters))
    if len(gp) > 9:
        gp[:] = []

现在,这将改变列表gp的位置,有效地删除其所有项。还有其他方法可以做到这一点,例如del gp[:]也可以工作,而Python3中的gp.clear()也可以工作(谢谢@PeterDeGlopper)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40667271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档