• <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

            人妻无码精品久久亚瑟影视| 亚洲色欲久久久久综合网| 青青草国产成人久久91网| 久久久国产精品网站| 久久青青草原精品国产软件| 国色天香久久久久久久小说| 国产成人久久精品激情| 久久激情五月丁香伊人| 亚洲AV无码久久| 久久综合色区| 青青草原综合久久大伊人精品| 美女久久久久久| 国产精品久久久久久搜索| 亚洲国产成人精品91久久久| 99久久中文字幕| 少妇内射兰兰久久| 久久笫一福利免费导航| 亚洲精品高清国产一久久| 99久久无色码中文字幕人妻| 久久精品成人欧美大片| 久久免费高清视频| 国产精品久久久久无码av| 伊人久久无码中文字幕| 日日狠狠久久偷偷色综合96蜜桃| 97精品久久天干天天天按摩| 中文字幕久久精品无码| 久久久亚洲欧洲日产国码是AV| 久久99精品久久久久久齐齐| 亚洲天堂久久精品| 奇米影视7777久久精品| 久久精品久久久久观看99水蜜桃| 久久久久国产一区二区| 久久99中文字幕久久| 丰满少妇高潮惨叫久久久| 国产午夜免费高清久久影院| 国产精品免费看久久久| 久久亚洲私人国产精品vA| 久久久久久毛片免费播放| 国内精品久久久久影院日本| 国产精品美女久久久久网| 久久精品免费观看|