鱼C论坛

 找回密码
 立即注册
查看: 1723|回复: 9

[已解决]关于迭代获取索引的一个问题

[复制链接]
发表于 2020-10-7 21:00:10 | 显示全部楼层 |阅读模式

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

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

x
# 替换strings中 aa 的字符串
strings = ['aa','bb','aa','cc']
string = ['aa']
for index,string in enumerate(strings):  #这句是怎么执行的呢?是怎么进行运作的呀?index string 在起了什么作用?
    if 'aa' in string:
        strings[index] = '[censored]'    #这里的index又是如何取值的呢?
        
最佳答案
2020-10-7 21:09:37
你的问题中,循环变量string就是enumerate()返回的元组,
if 'aa' in string,来判断该元组中是否是aa,以达到通过index替换元素的目的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-7 21:04:01 | 显示全部楼层
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
enumerate后得到的是[(0, 'aa'), (1, 'bb'), (2, 'cc'), (3, 'dd')],index依次为0,1,2,3,string依次为aa,bb,cc,dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 21:04:50 | 显示全部楼层
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, element
...
0 one
1 two
2 three
https://www.runoob.com/python/python-func-enumerate.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 21:06:59 | 显示全部楼层
enumerate()方法遍历strings时,index 和string 分别是列表元素的索引值和值
举个例子:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 21:09:37 | 显示全部楼层    本楼为最佳答案   
你的问题中,循环变量string就是enumerate()返回的元组,
if 'aa' in string,来判断该元组中是否是aa,以达到通过index替换元素的目的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-7 21:18:38 | 显示全部楼层
昨非 发表于 2020-10-7 21:09
你的问题中,循环变量string就是enumerate()返回的元组,
if 'aa' in string,来判断该元组中是否是aa,以 ...

第一次执行for后 会返回一个(0,aa)的元组,这时候index的值是0,string的值是aa,
然后if判断true 或 false。 是这样吧?
这个for的执行次数是根据enumerate返回的元组个数决定的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-7 21:19:18 | 显示全部楼层
疾风怪盗 发表于 2020-10-7 21:04
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数 ...

谢谢您的答复!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-7 21:19:49 | 显示全部楼层
kylin121380 发表于 2020-10-7 21:04
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数 ...

谢谢您的答复!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 21:26:00 | 显示全部楼层
史泰龙1997 发表于 2020-10-7 21:18
第一次执行for后 会返回一个(0,aa)的元组,这时候index的值是0,string的值是aa,
然后if判断true 或 ...

if 的判断结果决定了是否执行下面的替换,for语句执行的次数就是enumerate返回元组的个数,原理类似单纯的for i in ..的语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 21:44:34 | 显示全部楼层

其实很好理解啊,字典items循环时不是也是这样的么?key,value
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 13:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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