• <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 糯米 閱讀(423) 評論(0)  編輯 收藏 引用 所屬分類: Python

            欧美麻豆久久久久久中文| 97r久久精品国产99国产精| 久久久久亚洲精品天堂久久久久久| 国产叼嘿久久精品久久| 色8激情欧美成人久久综合电| 中文无码久久精品| 国产成人久久精品麻豆一区 | 国产A三级久久精品| 国产精品一久久香蕉产线看| 久久久WWW成人免费精品| 亚洲国产精品无码成人片久久| 狠狠狠色丁香婷婷综合久久五月 | 精品久久人妻av中文字幕| 久久国产精品偷99| 久久精品夜夜夜夜夜久久| 久久精品国产亚洲AV不卡| 色婷婷久久综合中文久久一本| 精品久久久久久国产91| 一本久久a久久精品vr综合| 久久久久一级精品亚洲国产成人综合AV区| 无码人妻少妇久久中文字幕蜜桃| 久久影院亚洲一区| 久久精品亚洲精品国产欧美| 伊人久久精品线影院| 97r久久精品国产99国产精| 久久国产精品无码一区二区三区| 97精品依人久久久大香线蕉97| 亚洲七七久久精品中文国产| 久久播电影网| 久久国产精品波多野结衣AV | 日本人妻丰满熟妇久久久久久| 怡红院日本一道日本久久 | 欧洲精品久久久av无码电影| 亚洲精品国产综合久久一线| 欧美亚洲国产精品久久久久| 亚洲国产小视频精品久久久三级| 久久伊人五月天论坛| 性做久久久久久久久浪潮| 久久国产AVJUST麻豆| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久精品无码专区免费青青|