python list和dict作為預設引數

2021-09-26 14:54:31 字數 600 閱讀 7921

今天面試被問到了這樣一道題,不幸的是我答錯了

def

function

(n, res=

):return res

function(1)

function(

2, res=[1

])print

(function(3)

)

結果是

[1,

3]

解釋

當list , dict等可變型別作為預設引數時,只會在定義函式的時候執行一次,有點像靜態變數,定義一次後面一直使用。在之後使用函式的過程中,如果沒有對預設引數進行賦值,那麼將會一直使用這個初始的變數。

解決方法

要想避免這種困惑的情況發生,可以按照如下的寫法

def

function

(n, res =

none):

if res ==

none

: res =

return res

python list裡面是dict時排序

剛開始我用的是氣泡排序 def sort jsonlist 氣泡排序,按位址大小重新排序 for i in range len jsonlist 1 for j in range len jsonlist 1 i if jsonlist j modbus從站id jsonlist j 1 modbu...

python list的函式和方法

1.建立list zjtest 1,2,3,4,5 方法 追加資料後的list為zjtest 1,2,3,4,5,12 3.list新增資料之insert函式 zjtest.insert 2,10 insert 索引,資料 新增時,會將新增的資料插入到制定索引位置上,並將原有資料後移一位 新增資料後...

Python list和string的相互轉換

在寫python過程中,會經常需要將字典 list string等型別之間進行轉換,本篇部落格主要記錄string和list的相互轉換,在以後的博文中,會再根據小白工作中遇到的例項對其他型別轉換進行記錄。目錄 1.list轉string 1.1普通形式的轉換 1.2高階形式的轉換 2.string轉...