Python賦值魔法
阿新 • • 發佈:2018-11-06
序列解包:
賦值語句有很多,變數賦值、列表中的元素賦值、切片賦值、字典項賦值
同時給多個變數賦值
a, b, c = 1, 2, 3 print(a, b, c) # 1 2 3 # 交換變數的值 a, b = b, a print(a, b, c) # 2 1 3
序列解包(可迭代物件解包),將一個可迭代物件解包,得到的值儲存到一系列變數
a = "num" x, y, z = a print(x, y, z) # n u m
假如要從字典隨便獲取(刪除)一個鍵值對,可以使用popitem,會以元組的形式返回,我們可以直接對元組解包到兩個變數
d = {"name": "shuai", "age": 23} key, value = d.popitem() print(key, value) # age 23
注意解包的元素個數與接收的變數必須相同,否則會引號異常
d = {"name": "shuai", "age": 23} key, value, name= d.popitem() # ValueError: not enough values to unpack (expected 3, got 2)
可以使用*來收集對於的值,這樣無需保證值和變數個數相同,帶*的變數總是一個列表
a = [1, 2, 3, 4,5] x, y, *z = a print(z) # [3, 4, 5] s, *d, f = a print(d) # [2, 3, 4] str = "shuai" j, *k, l, m = str print(j, k, l, m) # s ['h', 'u'] a i
鏈式賦值:
賦值的快捷方式,將多個變數關聯到一個值
a = b = c = 1 print(a,b,c) # 1 1 1
增強賦值:
將+移動到=前面,適用於所有的標準運算子,可以讓程式碼更緊湊、更簡潔、可讀性更強
x = x+1 # 可以寫成 x += 1