没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
本文始发于个人公众号:TechFlow,原创不易,求个关注 我们都知道Python是一个非常灵活的语言,以至于如果它不是你的第一门语言,你会发现它总能给你各种各样的惊喜,让你忍不住惊叹:woc,还有这种操作。尤其我在系统地学习Python之前是Java后端出身,所以每一阶段几乎都会让我觉得打开了新世界的大门。今天就和大家介绍一个最基础,非常好用,但是很多人不知道的操作。 解压变量 我们都知道,Python允许进行多个变量的赋值操作,比如著名的交换两个元素,如果是在C++或者Java语言当中,如果不通过函数实现,必须要引入第三个变量,比如: # swap a, b c = a a = b
资源推荐
资源详情
资源评论
Python应用应用——多变量的灵活处理多变量的灵活处理
本文始发于个人公众号:TechFlow,原创不易,求个关注
我们都知道Python是一个非常灵活的语言,以至于如果它不是你的第一门语言,你会发现它总能给你各种各样的惊喜,让你
忍不住惊叹:woc,还有这种操作。尤其我在系统地学习Python之前是Java后端出身,所以每一阶段几乎都会让我觉得打开了
新世界的大门。今天就和大家介绍一个最基础,非常好用,但是很多人不知道的操作。
解压变量解压变量
我们都知道,Python允许进行多个变量的赋值操作,比如著名的交换两个元素,如果是在C++或者Java语言当中,如果不通
过函数实现,必须要引入第三个变量,比如:
# swap a, b
c = a
a = b
b = c
我们要交换a和b必须要引入c,这是因为当我们赋值b给a的时候,a原本的值会丢失,所以我们必须要先”缓存“下来。但是由于
Python支持多变量赋值的操作,所以大可不必引入其他变量就可以完成,所以交换两个元素在Python当中只有一行就可以搞
定:
a, b = b, a
Python的解释器会直接计算后边的值然后覆盖左边,赋值是同时进行的,所以不需要引入其他变量,而且看起来也非常
geek。
除此之外,Python还支持tuple和list的解压。
举个例子,假设我们有一个二元数组:[1, 2],我们希望用两个变量分别获取它的第0位和第一位,我们当然可以写成这样:
l = [1, 2] a, b = l[0], l[1]
其实并不用这么麻烦,因为当Python检测到等号左边是多个变量,右边是list或者是tuple之后,会自动执行list和tuple的解压,
将它依次赋值给对应的元素,所以上面的代码可以简化成:
l = [1, 2] a, b = l
那如果l是一个二维数组,我们希望遍历它呢?同样可以在循环当中使用:
l = [[1, 2], [3, 4], [5, 6]] for i, j in l:
print(i, j)
即使是在变量的组合当中也可以生效:
a, b, c = 1, 3, (4, 5)
print(c)
当我们执行这段代码,屏幕上会输出什么呢?是会报错吗?还是会解压(4, 5)这个tuple然后将4赋值给c呢?
都不对,输出的结果是(4, 5),也就是说Python发现变量数量对不上之后,会自动将tuple当做一个整体进行赋值。不但如此,
即使是下面这种情况,Python也能自动识别:
a, b, (c, d), e = 1, 3, (4, 5), 7
print(c, d)
在上面的赋值当中,既有tuple又有普通元素,并且我们的变量也组合成了tuple,这时Python同样会识别出(4, 5)应该赋值给(c,
d)这个整体,也就是说4和5分别赋值给c和d。
缺省元素缺省元素
在有的时候,我们在获取元素的时候,源数据当中有我们不需要的字段。虽然Python自动解压非常方便,但是我们还是要为
我们不需要的数据设置变量。在一些情况下这会导致内存的浪费,并且这也不符合我们编程的规范,即所有变量都应该派上用
场。为了解决这个问题,Python提供缺省元素的方法。我们可以使用_来代表一个缺省值,_对应的数据不会被存储下来,只
是为了方便我们”凑齐“元素。
举个例子,还用上面的例子举例,假设源数据的格式是这样:1, 3, (4, 5), 7,但是我们只需要中间的元组,我们就可以这样去
接收:
_, _, (c, d), _ = 1, 3, (4, 5), 7
资源评论
weixin_38499553
- 粉丝: 11
- 资源: 904
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功