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

            99久久久精品| 久久综合亚洲色一区二区三区| 久久精品9988| 亚洲欧美精品一区久久中文字幕 | 久久天天躁夜夜躁狠狠| 久久婷婷五月综合国产尤物app| 久久精品男人影院| 久久午夜免费视频| 国产成人精品久久亚洲高清不卡| 久久无码AV中文出轨人妻| 狠狠综合久久综合88亚洲| 成人午夜精品久久久久久久小说| 伊人色综合久久天天网| 97超级碰碰碰碰久久久久 | 国产精品成人久久久久三级午夜电影 | 久久久亚洲欧洲日产国码二区| 精品国产乱码久久久久久浪潮| 精品久久无码中文字幕| 香蕉久久av一区二区三区| 97久久国产综合精品女不卡| 少妇无套内谢久久久久| 青青久久精品国产免费看| 99久久超碰中文字幕伊人| 99久久99这里只有免费费精品| 亚洲国产精品无码久久久不卡| 7777精品伊人久久久大香线蕉 | 久久久久99这里有精品10 | 一级做a爰片久久毛片免费陪| 久久av高潮av无码av喷吹| 国产欧美一区二区久久| 国产午夜免费高清久久影院| 精品久久久久中文字幕日本| 久久精品99久久香蕉国产色戒 | 香蕉久久夜色精品国产2020| 久久亚洲春色中文字幕久久久| 狠狠色丁香久久婷婷综| 久久99国产精品二区不卡| 欧美国产精品久久高清| 久久国产欧美日韩精品| 亚洲国产精品久久久久婷婷软件| 国产成人综合久久精品尤物|