前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python之高级性能

Python之高级性能

作者头像
AsiaYe
发布2019-11-06 15:18:19
5480
发布2019-11-06 15:18:19
举报
文章被收录于专栏:DBA随笔DBA随笔

Python之高级特性

当我们想取出来一个list中的某几个元素的时候,常常会用掉切分,考虑这样一种情况,我们要取出来一个list中的前三个元素,简单的办法是[L[0],L[1],L[2]],但是这样的写法太过于繁琐,而且要是我们想取出前100个数字,就要写100次,这样肯定是不可取的,针对这种情况,通常的解决办法是使用循环的方式。然而,循环的方式往往需要付出额外代价,Python中使用切分来实现这种需求,如下:

这里需要注意的是,test[0:3]当中并不包含test[3],它的真实含义是,从下标为0的元素开始,直到索引3为止,但是不包含索引3。切记不要理解为连续取3个数字。

为了方便,如果下标是从0开始的,我们可以直接省略0,写成,test[:3],如下:

前面我们讲过了list的倒数第一个元素可以用-1的下标来表示,这里我们同样可以用负数的下标来做切片,如下:

同样,省略最终的下标,则python会输出到这个list的末尾。

除此之外,设想这样一种情况,我们想要取出来一个list中的所有偶数下标,就需要每隔2个数字取一个下标,我们可以这样写:list[:10:2],表示从第一个数字到第九个数字,每隔2个数取一个,如下:

当我们需要对整个list每隔3个数字取一个,则可以使用list[::3]的方法。

同样,这样的切片操作,可以用在tuple和一般的字符串上面:

迭代

在Python中,迭代是使用for...in...来完成的,Python的for循环和C++的for循环有一些不同,它的抽象程度相对更高,它可以对一些没有下标的数据类型进行迭代,例如dict这种的:

我们可以直接通过一个for循环打印dic中的key,但是从结果进行分析,输入的key顺序是XiaoMing、XiaoZhang、Xiaowang,但是输出的顺序并不相符,这是因为dict默

情况下是没有顺序的,也就不存在下标的概念。

当我们需要打印出来每一个key对应的value时,需要使用如下语句:

当我们需要打印dict中的key和value时,需要使用如下语句:

同样的,字符串、list、tuple都是可迭代的对象,都可以使用迭代的方法进行迭代。

在迭代元素的过程中,我们有时候想要把元素下标和元素本身都输出出来,这个时候,我们可以使用python内置的enumerate函数来把一个可迭代对象变为一个索引-元素对,这样就可以同时迭代索引和元素本身,如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档