将序列分解为单独的变量

python中,任何序列或可迭代的对象都可以通过一个简单的赋值操作来分解为单独的变量。前提是要求变量的总数和结构要与序列相吻合

#_*_coding:utf8_*_
p = (4, 5)
x, y = p
print(x)
# 4
print(y)
# 5

data = ['GuoJing', 30, ('杨过', '小龙女')]
name, age, xialv = data
print(name)
# GuoJing
print(xialv)
# ('杨过', '小龙女')

name, age, (yangguo, xiaolonglv) = data
print(yangguo)
# 杨过
print(xiaolonglv)
# 小龙女

如果元素的数量不匹配,会报错

lover = ('杨过', '小龙女')
yangguo, xiaolonglv, yinzhiping = lover

# 报错:ValueError: need more than 2 values to unpack

丢弃不要的变量

在将序列分解成变量时,有些值我们并不需要,可以选一个用不到的变量名作为要丢弃的值的名称(一般选用 _ 作为变量名)

#_*_coding:utf8_*_
data = ['杨过', '尹志平', '小龙女']
husband, _, wife = data
print(husband)
# 杨过
print(wife)
# 小龙女

源码下载

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术小黑屋

关于Java中枚举Enum的深入剖析

在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析...

1103
来自专栏Android 研究

Retrofit解析8之核心解析——ServiceMethod及注解2

这个方法内部很简单,主要就是通过遍历annotations,内部调用parseParameterAnnotation来获取ParameterHandler对象并...

862
来自专栏JackieZheng

并发和多线程-八面玲珑的synchronized

上篇《并发和多线程-说说面试常考平时少用的volatile》主要介绍的是volatile的可见性、原子性等特性,同时也通过一些实例简单与synchronized...

1033
来自专栏大内老A

一个关于解决序列化问题的编程技巧

在前一篇文章中我曾经说过,现在正在做一个小小的框架以实现采用统一的API实现对上下文(Context)信息的统一管理。这个框架同时支持Web和GUI应用,并支持...

2075
来自专栏HTML5学堂

2015.12.03 HTML5真题练习

HTML5学堂:每天一道题,强壮程序员!今日主要涉及昨日题目的解答,以及一道涉及计时器、时间对象的题目。 HTML5真题【2015.12.02】答案解析 昨日真...

3235
来自专栏Phoenix的Android之旅

深入理解注解-类的常量池

但是留了个问题没有进一步说明,就是注解所设定的数据是存在什么地方的? 明白这个问题需要引入一个新东西,类的常量池。

684
来自专栏技术专栏

彻底搞懂jdk动态代理并自己动手写一个动态代理

我们都知道牛逼轰轰的Spring AOP的实现的一种方式是使用JDK的动态代理(另一种是cglib,后面会介绍),大部分人也会用jdk的动态代理,不过没有研究过...

1462
来自专栏HTML5学堂

2016.01.04 HTML5真题练习

HTML5学堂:新的一年,新的开始~!元旦快乐~!每天一道题,强壮程序员!今日主要涉及去年12.30日题目的解答,以及一道涉及日期对象的题目。 HTML5真题【...

3007
来自专栏Jimoer

在Java的反射中,Class.forName和ClassLoader的区别

最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来...

1302
来自专栏swag code

XML中节点类型

该 Node 接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node 接口的所有对象公开处理子节点的方法时,不是实现 Node 接口...

1226

扫码关注云+社区