• <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
            數(shù)據(jù)加載中……

            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?或者是優(yōu)化?
            總之是蠻讓人火大的就是了。
            用 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的時候會發(fā)現(xiàn)這一點。
            這個問題是自己經常犯的問題,大多都是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管理的運行時的對象的地址。
            如果發(fā)現(xiàn)兩個obj的id相同,那他們就是同一個貨。。

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

            久久久久久国产精品免费无码| 大美女久久久久久j久久| 国内精品久久久人妻中文字幕| 亚洲乱码精品久久久久..| 99999久久久久久亚洲| 久久99精品国产99久久6| 久久精品一本到99热免费| 无码人妻精品一区二区三区久久| 国产精品久久久久久福利69堂| 九九久久精品无码专区| 国内精品人妻无码久久久影院导航| 国产精品毛片久久久久久久 | 亚洲中文字幕无码久久2020 | 一本一道久久a久久精品综合 | AV无码久久久久不卡蜜桃| 久久99国产亚洲高清观看首页| 少妇人妻综合久久中文字幕| 精品久久久久久成人AV| 青青热久久国产久精品 | 国内精品伊人久久久久网站| 97精品伊人久久大香线蕉| 亚洲成色999久久网站| 亚洲国产精品一区二区久久| 综合网日日天干夜夜久久| 久久精品国产福利国产琪琪| 97久久精品无码一区二区 | 久久午夜电影网| 久久精品亚洲中文字幕无码麻豆| 久久人人爽人人爽人人片AV东京热| 无码超乳爆乳中文字幕久久| 精品无码久久久久国产动漫3d| 久久精品国产精品亜洲毛片| 99久久精品免费国产大片| jizzjizz国产精品久久| 久久精品国产网红主播| 久久天天躁狠狠躁夜夜avapp| 国产成人精品综合久久久久| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲国产一成久久精品国产成人综合| 日本一区精品久久久久影院| 99久久国产亚洲高清观看2024|