我们刚刚提到了字典的 .items()
方法会返回键值对元组的键值对元组列表:
1 | dic = {'key': 1, 'dsb': 'alex'} |
输出的内容为:
1 | dict_items([('key', 1), ('dsb', 'alex')]) |
我们得到的是一个键值对列表,每个键值对以元组的形式存在。
如果现在,我们需要提取其中的每个元素,可以这样操作:
1 | dic = {'key': 1, 'dsb': 'alex'} |
虽然能够实现,但是十分繁琐,这就需要用到结构的方法。
结构的基本样式是这样的:
1 | a, b = (10, 20) |
可以看出,10
和 20
的值分别被赋给了 a
和 b
。这种将等号右面的数据分别赋值给等号前面的变量的方法,就是解构。
在看下面的例子:
1 | a, b = '你好' |
a
获取到了 你
,b
获取到了 好
。也就是说,结构不仅适用于元组,也适用于字符串。事实上,只要是可迭代的对象,都可以用来解构:
1 | a,b,c = [10,20,30] |
需要注意的是,字典在进行迭代操作时,只会返回键,而不会返回值。
结构时,等式左边的变量数要和右边的元素数目相等,否则就会报错。
如果想要使用少数的变量来接收更多的元素,就需要使用 *
来将最后面的多个元素进行 聚合
:
1 | a, b, *c = (1, 2, 3, 4, 5, 6) |
输出的结果是:
1 | 1 |
3
、4
、5
和 6
被统一 打包
给了 c
,打包
后的数据以 列表
的形式储存。
返回前面字典的 .items()
方法返回值的使用上,如果用结构的方法,我们可以很容易地打印出键值对的内容来:
1 | dic = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4} |
输出的内容为:
1 | key1 1 |