1. 程式人生 > >Python賦值魔法

Python賦值魔法

序列解包:

  賦值語句有很多,變數賦值、列表中的元素賦值、切片賦值、字典項賦值

  同時給多個變數賦值

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