python編碼以及深淺拷貝

來源:互聯網
上載者:User

標籤:而不是   image   移動   特殊   print   als   集合   list   false   

is 和 == 的區別:

  is比較的兩端的記憶體位址

  == 比較的是兩端的值

小資料池的概念:

把我們通常使用過的值儲存在小資料池中,供其它的變數使用,小資料池給數字和字串使用,其他資料類型不存在

小資料池給數字和字串使用

對於字串:

1. 如果是純文字資訊和底線,那麼這個對象會被添加到小資料池

2. 如果是帶有特殊字元的,那麼不會被添加到小資料池,每次都是新的

3 .如果是單一字母*n 的情況 . ‘a‘*20, 在20個單位就不會添加到小資料池中

注意: 在py檔案中,如果你只是單純的滴定儀一個字串,那麼一般情況下都是會被添加到小資料池中的,我們可以這樣認為,在使用字串的時候,python會幫我們把字串進行緩衝,在下次使用的時候直接指向這個字元即可,可以節省很多記憶體

 is 比較的就是id()計算出來的結果, is比較的就是資料的記憶體位址

== 雙登表示的是判斷是否相等,注意沒這個雙登比較的是具體的值,而不是記憶體位址

 

bytes的表現形式:
1. 英?文 b‘alex‘ 英?文的表現形式和字串串沒什什麼兩樣
2. 中?文 b‘\xe4\xb8\xad‘ 這是?一個漢字的UTF-8的bytes表現形式

 

s = "alex"
print(s.encode("utf-8")) # 將字串串編碼成UTF-8
print(s.encode("GBK")) # 將字串串編碼成GBK
結果:
b‘alex‘
b‘alex‘
s = "中"
print(s.encode("UTF-8")) # 中?文編碼成UTF-8
print(s.encode("GBK")) # 中?文編碼成GBK
結果:
b‘\xe4\xb8\xad‘
b‘\xd6\xd0‘

記住: 英?文編碼之後的結果和源字串串?一致. 中?文編碼之後的結果根據編碼的不同. 編碼結果
也不同. 我們能看到. ?一個中?文的UTF-8編碼是3個位元組. ?一個GBK的中?文編碼是2個位元組.

 

基礎資料類型補充

join ------------------->

li = ["李李嘉誠", "麻花藤", "?黃海?峰", "劉嘉玲"]

s = "_".join(li)

print(s)

迴圈刪除列表中的元素:------------------>會刪不乾淨

這是因為for的運行過程,會有一個指標來記錄當前迴圈的元素是哪一個,一開始這個指標指向第0個,然後擷取到0個,然後刪除,這個時候,原來是第一個的元素會自動變成第0個,然後指標向後移動一次,指向1元素,這時原來的1已經變成了0 ,也就不會被刪除了

?用另?一個列列表來記錄你要刪除的內容. 然後迴圈刪除

li = [11, 22, 33, 44]

del_li = []

for e in li:

  del_li.append(e)

for e in del_li:

  li.remove(e)

print(li)

注意: 由於刪除元素會導致元素的索引發生改變,所以容易出現問題,盡量不要再迴圈中直接去刪除元素,可以把要刪除的元素添加到另一個集合中然後大量刪除

dict中的fromkey(),可以幫我們通過list來建立一個dict

前?面列列表中的每?一項都會作為key, 後?面列列表中的內容作為value. ?產生dict
好了了. 注意:

代碼中只是更改了jay那個列表,但是由於jay和JJ用的是同一個列表,所以前面那個改了,後面那個也會跟著改

dict中的元素在迭代過程中是不允許進行刪除的

那怎麼辦呢? 把藥刪除的元素暫時先儲存在一個list中,然後迴圈list,再刪除

 

類型轉換:

元組==>列表    list(tuple)

列表==>元組    tuple(list)

list==> str    str.join(list)

str ==> list     str.split()

轉換成False的資料:

0,‘‘,None,[],(),{},set() ==>False    

換言之,凡是一切能代表空的,無的都是False

 

python編碼以及深淺拷貝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.