鱼C论坛

 找回密码
 立即注册
查看: 556|回复: 2

小甲鱼课后习题i40课第1题的疑问

[复制链接]
发表于 2018-7-15 16:59:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小小小小的鱼丶 于 2018-7-15 17:16 编辑

这是timu

这是timu

class Nstr(str):
    def __sub__(self,other):
        mylist = []
        mylist_string = ""
        for each in self:
            mylist.append(each)
        count = self.count(other) #other在count中出现了几次
        print("%s出现了%d次"% (other,count))
        index = self.find(other)#返回other在self第一次出现的索引
        print("%s第一次出现的索引是%d"%(other,index))
        
        for each_count in range(count):#接下来只需要在list中把子字符串去掉就行,因为list.remove()参数可以是字符串
            print("这是第%d次循环开始:"% each_count)
            for each in range(len(other)):
                print(self[index+each])
                mylist.remove(self[index+each]) #这里删的是mylist里面的元素,self没有被改变,list.remove() 函数用于移除列表中某个值的第一个匹配项
        
            for each in mylist:
                mylist_string += each
            print("第%d次循环后的列表为:"%each_count,mylist_string)
            mylist_string = ""
            
        self = mylist_string
        return self
为啥结果是这样。。

结果

结果

结果

结果
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-15 17:34:48 | 显示全部楼层
本帖最后由 凌九霄 于 2018-7-15 17:46 编辑

在迭代完成之前直接删除元素会对后续的index产生错误,应该用反复find方法得到index,再去remove比较好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-15 18:00:50 | 显示全部楼层
凌九霄 发表于 2018-7-15 17:34
在迭代完成之前直接删除元素会对后续的index产生错误,应该用反复find方法得到index,再去remove比较好

迭代删除list没有问题啊。。不是对原字符串进行删除。关键的删除会出错。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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