2024-05-23 21:11:49 发布
网友
我正在通过下面的函数运行一个空列表,列表是gp。我们的想法是在列表的末尾加上一个字母,一旦长度达到9,就重新设置它。但是,一旦gp达到9个字符,它就会停止追加新字母。 def upd(gp): gp.append(random.choice(string.letters)) if len(gp) > 9: gp = []
gp
def upd(gp): gp.append(random.choice(string.letters)) if len(gp) > 9: gp = []
设置gp = []不会改变list gp,它只是将局部变量gp重新绑定为空列表。外部列表(传递给gp中的函数)不受此重新绑定的影响。你知道吗
gp = []
您需要做的是从列表中显式删除这些项。您可以这样一次性删除所有项目:
def upd(gp): gp.append(random.choice(string.letters)) if len(gp) > 9: gp[:] = []
现在这将改变列表gp,有效地删除它的所有项。还有其他方法可以做到这一点,例如del gp[:]也可以,而在python3中gp.clear()(谢谢@peterdegloper)。你知道吗
del gp[:]
gp.clear()
设置
gp = []
不会改变listgp
,它只是将局部变量gp
重新绑定为空列表。外部列表(传递给gp
中的函数)不受此重新绑定的影响。你知道吗您需要做的是从列表中显式删除这些项。您可以这样一次性删除所有项目:
现在这将改变列表
gp
,有效地删除它的所有项。还有其他方法可以做到这一点,例如del gp[:]
也可以,而在python3中gp.clear()
(谢谢@peterdegloper)。你知道吗相关问题 更多 >
编程相关推荐