• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            糯米

            TI DaVinci, gstreamer, ffmpeg
            隨筆 - 167, 文章 - 0, 評論 - 47, 引用 - 0
            數據加載中……

            python中最容易讓人火大的兩個問題

            1. list對象的*操作符
            >>> a = [[1]]*10
            >>> a
            [[
            1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
            >>> a[1][0] = 2
            >>> a
            [[
            2], [2], [2], [2], [2], [2], [2], [2], [2], [2]]
            >>>
            也就是說,這10個對象實際上是指向的同一個list對象。
            這是bug,還是feature?或者是優化?
            總之是蠻讓人火大的就是了。
            用 a = [[0] for x in range(10)] 這種寫法就沒有這個問題了。


            2. 深拷貝
            >>> a = [[0] for x in range(10)]
            >>> a
            [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> b = list(a)
            >>> b
            [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> a[1][0] = 2
            >>> b
            [[0], [
            2], [0], [0], [0], [0], [0], [0], [0], [0]]
            >>> 
            b = list(a)
            意味著a和b中都存放這10個指針。指向[0], [0], [0] .... 這10個對象。
            a[1][0] = 2 后 a 自己的值沒有改變,改變的是第二個 [0] 對象。
            由于 b 也是指向它的,所以打印b的時候會發現這一點。
            這個問題是自己經常犯的問題,大多都是debug半天才知道怎么回事。
            使用
            import copy
            b = copy.deepcopy(a)
            可以解決這個問題。

            3. 如何避免這些問題
            要時刻記得,python中的對象就只有兩種,mutable和immutable。也就是可改變和不可改變。
            immutable的包括:str  tuple  int ...
            mutable可改變的包括:list dict ...
            immutable的就是原子的。mutable里面存放的都是指向mutable或者immutable的指針。
            調試的時候,可以使用id(obj)獲得每個對象的id。這個貌似就是python管理的運行時的對象的地址。
            如果發現兩個obj的id相同,那他們就是同一個貨。。

            posted on 2011-02-08 15:38 糯米 閱讀(416) 評論(0)  編輯 收藏 引用 所屬分類: Python

            国产精品久久久久久久app| 少妇久久久久久被弄高潮| 日本人妻丰满熟妇久久久久久| 久久综合噜噜激激的五月天| 精品熟女少妇av免费久久| 国产精品久久免费| 香蕉aa三级久久毛片| 精产国品久久一二三产区区别| 色综合久久综合中文综合网| 青青青青久久精品国产h| 久久只这里是精品66| 久久综合九色综合欧美狠狠| 香蕉久久久久久狠狠色| 超级碰久久免费公开视频| 久久丫忘忧草产品| 91精品免费久久久久久久久| 中文无码久久精品| 欧美激情精品久久久久久久九九九| 久久午夜无码鲁丝片| 亚洲精品国产自在久久| 一本大道加勒比久久综合| 亚洲国产精品无码久久久秋霞2| 久久精品国产精品亚洲| 久久99久久99小草精品免视看 | 无码超乳爆乳中文字幕久久| 久久久久综合中文字幕 | 久久亚洲国产成人精品无码区| 久久无码人妻一区二区三区| 久久中文字幕人妻丝袜| 久久综合久久鬼色| 日韩精品无码久久一区二区三| 亚洲国产精品人久久| 久久婷婷国产麻豆91天堂| 久久综合狠狠综合久久综合88| 久久SE精品一区二区| 一97日本道伊人久久综合影院| 日日狠狠久久偷偷色综合0| 欧美性猛交xxxx免费看久久久| 久久国产视屏| 婷婷久久综合| 久久亚洲精品无码VA大香大香|