Python基础教程:解构

我们提到了字典的.items()方法会返回键值对元组的键值对元组列表:

dic = {'key': 1, 'dsb': 'alex'}
print(dic.items())

输出的内容为:

dict_items([('key', 1), ('dsb', 'alex')])

我们得到的是一个键值对列表,每个键值对以元组的形式存在。

如果现在,我们需要提取其中的每个元素,可以这样操作:

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333 
'''
dic = {'key': 1, 'dsb': 'alex'}
lst = list(dic.items())
print(lst[0][0])
print(lst[0][1])
print(lst[1][0])
print(lst[1][1])

虽然能够实现,但是十分繁琐,这就需要用到结构的方法。

结构的基本样式是这样的:

a, b = (10, 20)
print(a)
print(b)

可以看出,10 和 20 的值分别被赋给了 a 和 b。这种将等号右面的数据分别赋值给等号前面的变量的方法,就是解构。

在看下面的例子:

a, b = '你好'
print(a)
print(b)

a 获取到了 你,b 获取到了 好。也就是说,结构不仅适用于元组,也适用于字符串。事实上,只要是可迭代的对象,都可以用来解构:

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333 
'''
a,b,c = [10,20,30]
print(a)
print(b)
print(c)

a,b = {"key":1,"key2":2}
print(a)
print(b)

需要注意的是,字典在进行迭代操作时,只会返回键,而不会返回值。

结构时,等式左边的变量数要和右边的元素数目相等,否则就会报错。

如果想要使用少数的变量来接收更多的元素,就需要使用 * 来将最后面的多个元素进行 聚合:

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333 
'''
a, b, *c = (1, 2, 3, 4, 5, 6)
print(a)
print(b)
print(c)

输出的结果是:

1
2
[3, 4, 5, 6]

3、4、5 和 6 被统一 打包 给了 c,打包 后的数据以 列表 的形式储存。

返回前面字典的 .items() 方法返回值的使用上,如果用结构的方法,我们可以很容易地打印出键值对的内容来:

dic = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4}
for k, v in dic.items():
    print(k, v)

输出的内容为:

key1 1
key2 2
key3 3
key4 4
posted @ 2022-10-07 20:27  I'm_江河湖海  阅读(3)  评论(0编辑  收藏  举报