![机械工程师Python编程:入门、实战与进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/439/51753439/b_51753439.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.6 解包
解包(destructuring或unpacking)可以将元素集中的元素赋值给变量。让我们来看一些例子。
假设我们有一个包含某人信息的元组,包括名称和最喜欢的饮料:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_01.jpg?sign=1739035694-EgAQueLURWrlcqDCx7fCO1VHqgxaMOJI-0-7ca3ba48c052bf2a520e2b9092f766fc)
假设我们想把这两个信息放在不同的变量中。我们可以像这样把它们分开:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_02.jpg?sign=1739035694-FjlwMjZmdjEjYIFt6tudEP1aiJf7uLEY-0-619b1040b045b6b643e5bc0b0d0ef038)
这非常好,不过我们可以使用解包语法,更优雅地实现它。为了将元组内的两个字符串解包为两个变量,我们需要在赋值语句的左边,使用另一个包含变量名的元组:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_03.jpg?sign=1739035694-9o8kpP3kDCHIrv5kdCCZNutBRBhDywdO-0-c2c18e6fd3058670a3b2a6b2f2838e75)
我们还可以解包列表。例如,如果我们有一个列表,它包含另一个人的类似信息,如下所示:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_04.jpg?sign=1739035694-9IhkgzIG9yqc0fp5x7sW7593CdwnV711-0-b6a2d1124bff1c21cc3b9f5824b24925)
那么我们可以在赋值语句的左边,用一个列表来解包名称和最喜欢的饮料:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_05.jpg?sign=1739035694-jgX911P48MEc2Oa22eeBdzEXQwAZoOSN-0-ae57ec2078dfca1db94e2fc56777a3e8)
左边的元组或列表必须与右侧的元组或列表的大小相匹配,但有时候我们并非对所有的元素都感兴趣。在这种情况下,可以在需要忽略的值相应的位置使用下划线,例如:
![](https://epubservercos.yuewen.com/AE06E7/30549606304263306/epubprivate/OEBPS/Images/46_06.jpg?sign=1739035694-bUzPde3UxFVWg5ohmsF39iIPJ0nlwaCw-0-2193f4a94fea57a5375558afb1ab0dbf)
该代码将1分配给变量a,3分配给变量c,而忽略2。
这是另一种可以帮助我们编写更简洁代码的技巧。