• <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)這一點。
            這個問題是自己經(jīng)常犯的問題,大多都是debug半天才知道怎么回事。
            使用
            import copy
            b = copy.deepcopy(a)
            可以解決這個問題。

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

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


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            青青青青久久精品国产h久久精品五福影院1421 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 青青草原精品99久久精品66| 亚洲va久久久噜噜噜久久| 久久国产精品久久久| 思思久久好好热精品国产| 久久偷看各类wc女厕嘘嘘 | 无码超乳爆乳中文字幕久久| 亚洲国产精品婷婷久久| 无码国内精品久久综合88 | 亚洲av成人无码久久精品| 久久99精品国产麻豆蜜芽| 精品久久久久久久无码| 综合久久给合久久狠狠狠97色| 久久99热狠狠色精品一区| 久久精品免费全国观看国产| 国产91久久综合| 99久久99这里只有免费的精品| 国产精品久久久香蕉| 久久九九久精品国产| 精品久久久久中文字幕一区| 亚洲国产天堂久久综合网站| 国产精品久久久久无码av| 乱亲女H秽乱长久久久| 2020久久精品亚洲热综合一本| 久久精品国产亚洲5555| 久久精品国产精品青草app| 国产午夜精品久久久久免费视| 一本色道久久99一综合| 久久精品久久久久观看99水蜜桃| 亚洲精品国产第一综合99久久| 欧美激情精品久久久久久久九九九| 狠狠色综合久久久久尤物| 久久伊人亚洲AV无码网站| 久久99久久无码毛片一区二区| 国产午夜福利精品久久| 激情久久久久久久久久| 亚洲精品第一综合99久久 | 好久久免费视频高清| 一本伊大人香蕉久久网手机| 激情久久久久久久久久|