请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

默认参数为列表的问题

def f(x,l=[]):
    for i in range(x):
        l.append(i*i)    
    print l
    
f(2)
f(3,[3,2,1])
f(3)

输出为:[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4],为什么列表会出现这种情况啊,百度的答案模棱两可,不详细

正在回答 回答被采纳积分+3

1回答

7七月 2018-08-30 04:56:31

其实都是0,1,4的结果,第二个前面是3,2,1 因为你把3,2,1 传进去了呀

0 回复 有任何疑惑可以回复我~
  • 提问者 小晓灬枫 #1
    def f(x,l=[]):
        for i in range(x):
            l.append(i*i)    
        print(l)
         
    f(3)
    f(3,[3,2,1])
    f(3)
    输出为:
    [0, 1, 4]
    [3, 2, 1, 0, 1, 4]
    [0, 1, 4, 0, 1, 4]
    ,为什么第一次和第三次相同调用方式却又不同结果
    回复 有任何疑惑可以回复我~ 2018-08-30 18:10:42
  • 7七月 回复 提问者 小晓灬枫 #2
    肯定不同啊,一个是2,一个是3,3多循环一次啊
    回复 有任何疑惑可以回复我~ 2018-09-03 06:05:48
  • 7七月 #3
    错了,一个是1,一个是3
    回复 有任何疑惑可以回复我~ 2018-09-03 06:06:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信