鱼C论坛

 找回密码
 立即注册
查看: 2013|回复: 0

[技术交流] 内置函数enumerate()的使用

[复制链接]
发表于 2017-7-21 17:58:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. >>> week = ['monday','sunday','thursday']
  2. >>> list(enumerate(week))
  3. [(0, 'monday'), (1, 'sunday'), (2, 'thursday')]
复制代码


可以看出,我们通过enumerate()同时得到了列表的元素索引和元素。
  1. >>> for (i,day) in enumerate(week):
  2.         print(day + '--' + str(i))

  3.         
  4. monday--0
  5. sunday--1
  6. thursday--2
复制代码


对,就是这么一个结果,利用for循环把列表中的元素一一展示出来
那么,还有什么用呢
对于字符串来说,利用enumerate()可以把字符串全部拆分出来,并加上相应的索引
  1. >>> a = 'summer'
  2. >>> list(enumerate(a))
  3. [(0, 's'), (1, 'u'), (2, 'm'), (3, 'm'), (4, 'e'), (5, 'r')]
复制代码


有这么一个小练习
  1. >>> raw = 'how about xiaojiayu? xiaojiayu is a good teacher.'
复制代码


在这段话里,我们需要把里面的‘xiaojiayu’换成‘fishC’,需要怎么操作呢
  1. >>> raw_list = raw.split(' ')
  2. >>> print(raw_list)
  3. ['how', 'about', 'xiaojiayu?', 'xiaojiayu', 'is', 'a', 'good', 'teacher.']
复制代码


利用之前的split()函数把raw字符串拆开成列表
然后,利用enumerate()把列表内对应的元素添加索引
再通过for循环进行修改
  1. for (i,string) in enumerate(raw_list):
  2.         if string == 'xiaojiayu':
  3.                 raw_list == 'fishC'
  4. >>> raw_list
  5. ['how', 'about', 'xiaojiayu?', 'fishC', 'is', 'a', 'good', 'teacher.']
复制代码


这里会发现,只有一个‘xiaojiayu’被更改了,‘xiaojiayu?’还是没变,所以需要把条件放宽
  1. >>>for (i,string) in enumerate(raw_list):
  2.         if 'xiaojiayu' in string:
  3.                 raw_list<i> = 'fishC'
  4. >>> raw_list
  5. ['how', 'about', 'fishC', 'fishC', 'is', 'a', 'good', 'teacher.']</i>
复制代码


这个时候,再利用我们的join()函数把这里列表里面的元素组合起来
  1. >>> ' '.join(raw_list)
  2. 'how about fishC fishC is a good teacher.'
复制代码

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 13:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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