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

            久久久久无码精品国产不卡| 国产精品久久毛片完整版| 亚洲国产成人精品无码久久久久久综合| 久久久久久九九99精品| 亚洲综合精品香蕉久久网97| 久久影视综合亚洲| 久久精品国产网红主播| 久久久噜噜噜久久| 久久精品国产99久久久| 久久综合色区| 久久精品国产91久久麻豆自制| 无夜精品久久久久久| www性久久久com| 99久久做夜夜爱天天做精品| 日韩一区二区久久久久久| 久久久久久国产精品美女| 精品免费久久久久国产一区 | 无码人妻久久一区二区三区 | 国产成人久久精品麻豆一区| 性做久久久久久久久浪潮| 91久久福利国产成人精品| 亚洲午夜久久久影院| 婷婷久久综合九色综合绿巨人 | 久久久无码精品亚洲日韩蜜臀浪潮 | 无码日韩人妻精品久久蜜桃| 青青久久精品国产免费看 | 国产精品久久毛片完整版| 亚洲AV日韩精品久久久久久| 2021国产精品久久精品| 久久丝袜精品中文字幕| 久久性生大片免费观看性| 国产69精品久久久久9999| 88久久精品无码一区二区毛片 | 精品久久人人做人人爽综合| 亚洲国产精品久久久久婷婷老年 | 人人狠狠综合久久亚洲88| AV无码久久久久不卡蜜桃| 久久精品国产亚洲AV高清热| 成人国内精品久久久久影院| 国产精品一久久香蕉国产线看| 久久超乳爆乳中文字幕|