【Python】關於list的面試坑

首先,有一個函數:

def extendList(val, list=[]):
    list.append(val)
    return list

1.調用函數並輸出,如下:

list1 = extendList(10)
print(list1)
----------------------
# 輸出結果
[10]

2.然後再次調用並輸出,如下(對這個結果並沒有疑問):

list2 = extendList(123, [])
print(list2)
----------------------
# 輸出結果
[123]

3.再次操作:

list3 = extendList('a')
print(list3)

輸出是多少呢?a?123,a?

→輸出:[10, 'a']

4.再次調用函數,直接輸出結果

list4 = extendList('b',[4])
print(list4)
----------------------
# 輸出結果
[4, 'b']

5.嘗試再調用一次

list5 = extendList(5)
print(list5)
----------------------
# 輸出結果
[10, 'a', 5]

到這裏那我們再輸出一下list1看一下:

print(list1)
----------------------
# 輸出結果
[10, 'a', 5]

有意思吧,分別打印一下5個list的id值看一下

print(id(list1),id(list2), id(list3), id(list4), id(list5))
----------------------------
600539506888 600539689352 600539506888 600539689288 600539506888

可以看到id值1、3、5相同,2與135不同,4與2和135都不同,

list1、3、5,其實操作的是同一個列表,list2是單獨的一個,list5也是單獨的一個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章