中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python的in,is和id函數的用法

發布時間:2020-08-03 09:22:12 來源:億速云 閱讀:155 作者:小豬 欄目:開發技術

這篇文章主要講解了Python的in,is和id函數的用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

1. in 和 not in —— 判斷某個序列中是否存在某值

# in
aa = [1,2,3,'Cathy','太平洋']
if '大西洋' in aa:
  print('yes')
else:
  print('no') # no

# not in
if '大西洋' not in aa:
  print('yes') # yes
else:
  print('no')
  
#-------------------------------------------------------
# 判斷字符串是否存在某子串  
if '馬來西亞' in '馬來西亞是一個太平洋國家':  
  print('of course') # 輸出 'of course'

# ------------------------------------------------------
if 0 in (0,1,2,3):
  print('hhhh') #輸出 'hhhh'

if 0 in [0,1,2,3]:
  print('kkkk') #輸出 'hhhh'

2. is 和 is not —— 判斷兩個標識符是不是指向同一個地址(同一個對象),類似于判斷 id(x) == id(y) —— 具體對于相同值的內存管理

# 相同
bb = 234
cc = 234
if bb is cc:
  print('bb is cc') #結果是 bb is cc 
else:
  print('bb is not cc')
print(id(bb)) # id()值一樣,因為python的優化機制,相同的'數值'數據會使用同樣的內存空間。
print(id(cc))

# 相同
bb = 'hhh'
cc = 'hhh'
if bb is cc:
  print('bb is cc') #同樣也是因為python的自身機制,在某些'字符'位數下,相同字符串也會指向同一地址 ------ 有說20位的,與系統有關
else:
  print('bb is not cc')# 相同,python的對象引用機制
bb = [1,2,3] 
cc = bb
if bb is cc:
  print('bb is cc') #結果是 bb is cc 
else:
  print('bb is not cc')

# 不相同
bb = [1,2,3]
cc = [1,2,3]
if bb is cc:
  print('bb is cc')  
else:
  print('bb is not cc') #結果是 bb is not cc
print(id(bb)) # id()值不一樣
print(id(cc))

3. id() 函數,獲取對象的內存地址(不同電腦不一樣),例如:

bb = 'hhh'
cc = bb
if bb is cc:
  print('bb is cc') #結果是 bb is cc 
else:
  print('bb is not cc')
print(id(bb)) # id()值一樣,均為 1680346901336
print(id(cc))

4. 可變數據類型和不可變數據類型

不可變數據類型: 當該類型的變量值發生了改變,它對應的內存地址也會發生改變。

可變數據類型 :當該類型的變量值發生了改變,它對應的內存地址不發生改變。

這里的可變不可變,是指內存中的值內容(value)是否可以被改變。如果是不可變類型,在操作對象本身的時候,必須在內存新申請一塊內存(因為原內存內容是不可變的)。如果是可變類型,操作對象的時候,不需要再在其他地方申請內存,只需要在此對象后面連續申請內存,所以它的地址會保持不變,但該內存區域大小會變化。

在python中:

int,string,float,tuple —— 屬于python的不可變類型

object、list、set —— 屬于python的可變類型

使用:可以使用內建函數id()來確認對象的地址在兩次賦值前后是否發生了變化。

例如:分別對于數值和列表類型:

a = 1
print(id(a))
a = a+1 #a本身發生變化
print(id(a))
# 結果分別為:140732932812544 和 140732932812576,表示id值發生了變化

a = ['1']
print(id(a))
a.append('sss') #a本身發生變化
print(id(a))
print(a)  # 輸出:['1', 'sss']
# 結果分別為:1680347029768 和 1680347029768,表示id值沒有變化

看完上述內容,是不是對Python的in,is和id函數的用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

登封市| 凤翔县| 屏东市| 潼南县| 喜德县| 南投市| 伊宁市| 大关县| 铅山县| 宜君县| 交城县| 乌拉特前旗| 花垣县| 青铜峡市| 夏津县| 麻栗坡县| 沧州市| 沾化县| 恩平市| 云浮市| 岗巴县| 日喀则市| 泊头市| 东乌珠穆沁旗| 德保县| 息烽县| 金门县| 新安县| 扎兰屯市| 咸丰县| 丰城市| 龙游县| 新巴尔虎左旗| 柳河县| 蒙自县| 常德市| 武安市| 江油市| 安远县| 独山县| 苗栗县|