摘要:起因注以下操作使用的版本為今天在寫基數排序的時候,由于需要創(chuàng)建一個的的,所以我使用了如下方法創(chuàng)建隨后,我在往桶里面存放數據的時候結果顯示結果不符合我的預期,于是用查看對象的引用后發(fā)現(xiàn)該里面的果然都是同一個解決辦法隨后改用如下方法創(chuàng)建并存放
0x00 起因
注: 以下操作使用的Python版本為:Python 3.7.3
今天在寫基數排序的時候,由于需要創(chuàng)建一個0-9的bucket的list,所以我使用了如下方法創(chuàng)建:
bucket = [[]] * 10
隨后,我在往桶里面存放數據的時候:
bucket[3].append(3)
結果顯示:
結果不符合我的預期,于是用id查看對象的引用后:
發(fā)現(xiàn)該list里面的list果然都是同一個!
隨后改用如下方法創(chuàng)建,并存放數據:
bucket = [ [] for x in range(10)] bucket[3].append(3)
得到的結果就符合預期了,可以看到對象的引用不一樣
0x02 小結查看官方文檔,原來對于mul操作符有說明,如下圖所示
使用"*"操作符是反饋 b個數的a,在同一個list中的所以list的引用都是一樣了
而使用[ [] for x in range(10) ]則相當于使用循環(huán):
bucket = [] for x in range(10): bucket.append([])
自然bucket中的每個list都是不同的對象
得出的結論:我們在批量創(chuàng)建引用對象時,不要使用Multi operator?。?!
Python multi operator
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/43833.html
摘要:下文統(tǒng)一稱為數組是存儲單一數據類型的多維數組同語言數組直接保存數值而則是能夠對數組進行處理的函數。動態(tài)數據類型與的數組和的這些不可變數據類型的適用場景等可變數據類型適用于需要不斷對原始數據進行修改的場景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一個矩陣計算包,功能類似ma...
小編寫這篇文章的主要目的,主要是給大家進行介紹,關于NumPy與Python內置列表計算標準差區(qū)別的相關介紹,希望可以給各位讀者帶來幫助?! ?什么是Numpy NumPy,是NumericalPython的通稱,用以性能卓越計算機的應用和數據統(tǒng)計分析的前提包,像數理科學專用工具(pandas)和架構(Scikit-learn)中都采用上了NumPy這個包。 NumPy中的基本數據結構是n...
摘要:代碼實現(xiàn)在控制臺打印總結本篇文章帶大家搭好環(huán)境,并體驗了控制臺打印。輸出結果總結熟練掌握取余和整除運算,大有作用。終止本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)。 ?本文收錄...
摘要:語法速覽與機器學習開發(fā)環(huán)境搭建從屬于筆者的程序猿的數據科學與機器學習實戰(zhàn)手冊,如果希望了解更多關于數據科學與機器學習知識體系結構,推薦閱讀我的技術體系結構圖面向程序猿的數據科學與機器學習知識體系及資料合集。 Python語法速覽與機器學習開發(fā)環(huán)境搭建從屬于筆者的程序猿的數據科學與機器學習實戰(zhàn)手冊,如果希望了解更多關于數據科學與機器學習知識體系結構,推薦閱讀2016:我的技術體系結構圖:...
閱讀 1985·2021-11-23 10:03
閱讀 4186·2021-11-22 09:34
閱讀 2493·2021-10-08 10:05
閱讀 2257·2019-08-30 15:53
閱讀 1695·2019-08-30 13:56
閱讀 1164·2019-08-29 16:52
閱讀 1114·2019-08-26 13:31
閱讀 3354·2019-08-26 11:45