设为首页 收藏本站
查看: 1591|回复: 0

[经验分享] python之切片与迭代

[复制链接]

尚未签到

发表于 2018-8-7 10:17:54 | 显示全部楼层 |阅读模式
  取一个列表或元组的部分元素是非常常见的操作。
n=[]  
(n[]n[])
  当取多个元素时,可以用python自带的切片(slice)
n=[]  
(n[:])
[123, 234]  n[0:2]表示,从索引0开始,直到索引2为止,但不包含索引2,即索引0,1,正好是2个元素,如果第一个元素是0还可以省略
print(n[:2])  也可以从索引1开始,取两个元素
n=[]  
(n[:])
[234, 456]  倒数第一个元素的索引是-1
  操作切片十分有用,先创建一个0-99的数列:
L=(())  
(L)
  
(L[:])
  取最后10个
L=(())  
(L[-:])
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]  所有数,每5个取一个,在【开始:结束:步长】
L=(())  
(L[::])
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]  复制一个列表
  L[:]
  tuple也是一个list,只是tuple不可变,所以tuple也可以做切片,结果仍然是tuple
print((1,2,3,4,5,6)[:3])(1,2,3,4,5,6)为元组[:3]为切片操作  字符串也可以看成是一种list,每个元素就是一个字符串,因此字符串也可以用切片操作,结果仍为字符串
([:])  
([::])
  迭代
  如果给定一个list或tuple,我们可以用for循环来遍历,这种遍历称之为迭代。
  list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代
DSC0000.jpg

  因为dict不是按照list的方式顺序排列,所以迭代出的结果顺序很可能不一样。默认情况下,dict迭代的是key,如果要迭代value,可以用
  for  value in d.values():,如果要同时迭代key和value,可以用for  k,v in d.items()。
  字符串也可以迭代
DSC0001.jpg

  所以对于for循环,只要作用于一个可迭代对象,for就能正常运行。
  判断一个对象是否能迭代的方法
  collections模块的
Iterable类型
DSC0002.jpg

  实现对list的下标循环
  enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。
ivalue  ([]):  
    (ivalue)
  上面的循环,同时引用两个变量,在python里很常见,下面示例
DSC0003.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-548066-1-1.html 上篇帖子: python学习之路-day4.1 下篇帖子: python版约瑟夫环
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表