python面試題之列表聲明實例分析
本文實例講述了python面試題之列表聲明。分享給大家供大家參考,具體如下:
下面程序輸出的結(jié)果為?
val = [['a']*2]*2 print val val[0][1]='b' print val
答案為:
[['a', 'a'], ['a', 'a']]
[['a', 'b'], ['a', 'b']]
而不是
[['a', 'a'], ['a', 'a']]
[['a', 'b'], ['a', 'a']]
請看下面的例子:
val = ['a']*2 #或者直接聲明val = ['a','a'] print val print id(val) print id(val[0]) print id(val[1])
輸出的結(jié)果為
['a', 'a']
39993928
38858384
38858384
可以看到val中的兩個'a'是指向的同一個地址:

再看下面的代碼:
直接聲明的話,不會改變后面的'a'
val = [['a','a'],['a','a']] print val print id(val) print id(val[0][0]) print id(val[1][0]) val[0][0] = 'b' print val print id(val) print id(val[0][0]) print id(val[1][0])
結(jié)果為:
[['a', 'a'], ['a', 'a']]
39405512
38268560
38268560
[['b', 'a'], ['a', 'a']]
39405512
38390280
38268560
而
val = [['a','a']]*2 print val print id(val) print id(val[0][0]) print id(val[1][0]) val[0][0] = 'b' print val print id(val) print id(val[0][0]) print id(val[1][0])
結(jié)果為:
[['a', 'a'], ['a', 'a']]
40388552
39251600
39251600
[['b', 'a'], ['b', 'a']]
40388552
39373320
39373320
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
詳解向scrapy中的spider傳遞參數(shù)的幾種方法(2種)
這篇文章主要介紹了詳解向scrapy中的spider傳遞參數(shù)的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
Python實現(xiàn)獲取漢字偏旁部首的方法示例【測試可用】
這篇文章主要介紹了Python實現(xiàn)獲取漢字偏旁部首的方法,涉及Python基于第三方模塊進行漢字處理的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
python單例模式之selenium driver實現(xiàn)單例
這篇文章主要介紹了python單例模式之selenium driver實現(xiàn)單例,使用裝飾器實現(xiàn)單例,文章基于python的相關(guān)資料實現(xiàn)主題,具有一的的參考價值,需要的朋友可以參考一下2022-03-03

