今天面試被問到了這樣一道題,不幸的是我答錯了
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轉...