1 拆包
拆包就是将一个对象拆为多个对象,拆包实际上可以应用到任何可迭代对象上,唯一的硬性要求是,被可迭代对象中的元素数量必须要跟接受这些元素的元组的空档数一致。除非我们用 * 来表示忽略多余的元素。带*的变量返回列表。
1.1 列表拆包
例:
a, b, c = ['aaa', 'bbb', 'ccc']
print(a, b, c)
# aaa bbb ccc
列表中的元素对应赋值给相应的变量。
1.2 字典拆包
例:
a, b, c = {
'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
print(a, b, c)
#key1 key2 key3
注意对可迭代对象解包时,拆分出的元素是for
循环结果的元素,所以对字典解包得到的是键!
如果想得到键值对的形式,可以这样进行解包:
a, b, c = {
'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}.items()
print(a, b, c)
# ('key1', 'value1') ('key2', 'value2') ('key3', 'value3')
如果我们想对字典中的值进行解包呢,我们可以使用**来实现
例如:
# A sample program to demonstrate unpacking of
# dictionary items using **
def fun(a, b, c):
print(a, b, c)
# A call with unpacking of dictionary
d = {
'a':2, 'b':4, 'c':10}
fun(**d)
结果:
2