日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python is 和 ==區別

系統 1689 0

s 與 == 區別 :

is 用于判斷兩個變量引用對象是否為同一個, == 用于判斷引用變量的值是否相等。

a is b 相當于 id(a)==id(b), id() 能夠獲取對象的內存地址。

如果 a=10;b=a; 則此時 a 和 b 的內存地址一樣的;

但當 a=[1,2,3]; 另 b=a[:] 時,雖然 a 和 b 的值一樣,但內存地址不一樣。

如果此時定義 a=10、b=10, 然后再對比 a is b 會發現返回的結果是 True,這是因為在 Python 中會實現創建一個小型的整形池,范圍為 [-5,256],為這些整形開辟好內存空間,當代碼中定義該范圍內的整形時,不會再重新分配內存地址。而我在 Pycharm 中進行測試:

          
            #coding=utf-8
            
              
a
              
                =
                
                  100000000000
                  
                    ;
                    
                       b
                      
                        =
                        
                          100000000000
                          
                            ;
                            
                              
                                print
                                
                                   a 
                                  
                                    is
                                    
                                       b
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        

結果:

          
            True
          
        

后來查了資料才發現是:Python出于對性能的考慮,但凡是不可變對象,在同一個代碼塊中的對象,只有是值相同的對象,就不會重復創建,而是直接引用已經存在的對象。

            >>> a = 1 
            
              #
            
            
              a和b為數值類型
            
            
>>> b = 1
>>> a 
            
              is
            
            
               b
True

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = 
            
              '
            
            
              cheesezh
            
            
              '
            
            
              #
            
            
              a和b為字符串類型
            
            
>>> b = 
            
              '
            
            
              cheesezh
            
            
              '
            
            
>>> a 
            
              is
            
            
               b
True

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = (1,2,3) 
            
              #
            
            
              a和b為元組類型
            
            
>>> b = (1,2,3
            
              )

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = [1,2,3] 
            
              #
            
            
              a和b為list類型
            
            
>>> b = [1,2,3
            
              ]

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = {
            
              '
            
            
              cheese
            
            
              '
            
            :1,
            
              '
            
            
              zh
            
            
              '
            
            :2} 
            
              #
            
            
              a和b為dict類型
            
            
>>> b = {
            
              '
            
            
              cheese
            
            
              '
            
            :1,
            
              '
            
            
              zh
            
            
              '
            
            :2
            
              }

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>>
            
               id(b)

            
            >>> a = set([1,2,3])
            
              #
            
            
              a和b為set類型
            
            
>>> b = set([1,2,3
            
              ])

            
            >>> a 
            
              is
            
            
               b
False

            
            >>>
            
               id(a)

            
            >>> id(b)
          

只有數值型和字符串型的情況下,a is b才為True,當a和b是tuple,list,dict或set型時,a is b為False。

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 新营市| 民丰县| 宝兴县| 南岸区| 扎鲁特旗| 清新县| 英山县| 保靖县| 宁化县| 承德市| 雷山县| 安阳县| 左云县| 赤城县| 民乐县| 玉林市| 焦作市| 米脂县| 永德县| 邢台县| 崇仁县| 庄浪县| 海淀区| 安仁县| 和硕县| 舞钢市| 荥经县| 达孜县| 彭山县| 秀山| 山阴县| 大兴区| 邯郸县| 洛南县| 石景山区| 迭部县| 怀安县| 五指山市| 蒙自县| 峡江县| 杨浦区|