请稍候,加载中....

解包赋值

对于元组、列表这样的可迭代对象,支持使用解包赋值语法赋值

列表解包赋值

lists = ["A", "B", "C", "D"]
# 假设有4个变量a\b\c\d
# 希望将lists的4个成员分别赋值给这4个变量
# 可以通过一行一行的单独赋值完成
a = lists[0]
b = lists[1]
c = lists[2]
d = lists[3]

通过列表解包,将列表中的多个元素分别赋给多个变量

a, b, c, d = lists
print(a, b, c , d)

解包赋值注意问题

# 解包运算,变量的数量必须与列表的元素数量一致
lists = ["A", "B", "C"]
# 变量数量与列表数量不一致
a, b =  lists
a, b, c, d = lists
# 如果变量数量比列表成员数量少
# 可以在某个变量前添加*,接受任意数量值
lists = [1, 2, 3, 4, 5]
a, *b = lists
print(a, b)
a, *b, c = lists
print(a, b, c)

元组解包赋值

Python通过元组解包赋值可以轻松完成两个变量值的交换

a = 10
b = 20
a, b = b, a

字典的解包

# 字典的解包赋值
dicts = {"key1":"A", "key2":"B", "key3":"C"}
a, b, c = dicts
# a => key1, b => key2, c => key3

# 相当于
a, b, c = dicts.keys()

# 对字典值解包
a, b, c = dicts.values()

# 对字典条目解包
a, b, c = dicts.items()

Python学习手册-