概述
该功能的预期目标foo是将作为参数提供的数字添加到列表中,如果该数字为0,则重置列表。首先我写了这个程序:
def foo(n, bar = []):
if n == 0:
bar = []
print("list empty")
else:
bar.append(n)
for y in bar:
print(y, end=', ')
print()
foo(5)
foo(3)
foo(0)
foo(6)
输出:
5,
5, 3,
list empty
5, 3, 6,
但看起来却被bar = []忽略了。然后我改变bar = []了bar.clear(),它按照我的想法工作:
def foo(n, bar = []):
if n == 0:
bar.clear()
print("list empty")
else:
bar.append(n)
for y in bar:
print(y, end=', ')
print()
foo(5)
foo(3)
foo(0)
foo(6)
输出:
5,
5, 3,
list empty
6,
我不明白,为什么bar.clear()从工作differntlybar = []自clear()应
从集合中删除所有元素。
所以做同样的事情bar = []。
编辑:我不认为我的问题是“最低惊讶”和可变默认参数的重复,我知道
默认值仅计算一次。
(来自官方教程)但是我要问的是,为什么bar = []不编辑(在这种情况下是清除的)列表,而附加和清除的是呢?
最后
以上就是体贴电脑为你收集整理的android 清空list集合,list.clear()与list = []有何不同?的全部内容,希望文章能够帮你解决android 清空list集合,list.clear()与list = []有何不同?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复