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


            久久久久久精品成人免费图片| 久久99精品国产麻豆宅宅| 热久久国产欧美一区二区精品| 久久高清一级毛片| 亚洲精品乱码久久久久久蜜桃不卡 | 蜜臀av性久久久久蜜臀aⅴ| 99久久成人国产精品免费| 久久天天日天天操综合伊人av| 偷窥少妇久久久久久久久| 久久er国产精品免费观看2| 天堂无码久久综合东京热| 久久99精品久久久久久hb无码| 久久99精品久久久久久9蜜桃| 无码超乳爆乳中文字幕久久| 精品熟女少妇aⅴ免费久久| 精品人妻久久久久久888| 久久99这里只有精品国产| 国产99久久久国产精品~~牛| 亚洲日本va中文字幕久久| 色天使久久综合网天天| 99久久免费国产精品| 狠狠干狠狠久久| 久久综合狠狠综合久久综合88| 国产精品美女久久福利网站| 久久91这里精品国产2020| 久久精品无码一区二区三区| 色综合久久无码五十路人妻| 麻豆精品久久久久久久99蜜桃| 久久国产三级无码一区二区| 93精91精品国产综合久久香蕉| 粉嫩小泬无遮挡久久久久久| 久久久久久毛片免费播放| 伊人久久大香线蕉av不卡 | 久久人妻少妇嫩草AV无码蜜桃| 久久精品国产亚洲AV无码娇色| 久久精品国产亚洲AV影院| 亚洲欧洲久久av| 亚洲国产精品无码久久久不卡| 久久人妻AV中文字幕| 色婷婷综合久久久久中文一区二区| 久久无码高潮喷水|