默认参数为列表的问题

来源:1-1 导学

小晓灬枫

2018-08-29

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],为什么列表会出现这种情况啊,百度的答案模棱两可,不详细
写回答

1回答

7七月

2018-08-30

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

0
5
小晓灬枫
回复
7七月
def f(x,l=[]): for i in range(x): l.append(i*i) print(l) f(3) f(3) f(3) 结果:[0, 1, 4] [0, 1, 4, 0, 1, 4] [0, 1, 4, 0, 1, 4, 0, 1, 4]
2018-09-04
共5条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14598 学习 · 4469 问题

查看课程