1. 程式人生 > >本人用python刷題時的錯誤總結

本人用python刷題時的錯誤總結

target [] [[]] arc 操作 code pan com html

    本人新手,在leetcode刷題過程中出現過很多問題,故在此總結,不定時更新。

  1、在創建一個二維列表的時候,我之前會用 a = [[0] * 5] * 5, 但是這樣輸出的結果往往會跟期待的不一樣,我一直以為是我的程序有問題,百度了很久也不知道錯誤在哪兒,後來看見別人的解法,自己換了一個創建並初始化列表的代碼,結果就可以運行了,出錯的原因就是:[[]]是一個含有一個空列表元素的列表,所以[[]]*3表示3個指向這個空列表元素的引用,修改任何一個元素都會改變整個列表。所以我現在常用的方法就是用列表生成式:a = [[0] * 5 for _ in xrange(5)] 鏈接:http://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html

  2、其實和1一樣,已知b列表,在我想要執行復制列表b並修改復制後的列表a的時候(a = b,如果我改變a之後b的值也會改變,因為他們現在是指向同一個列表,如果要復制可以執行 a = b[:],采用分片操作。

本人用python刷題時的錯誤總結