鱼C论坛

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

[已解决]第八章课后作业

[复制链接]
发表于 2020-6-6 23:09:02 | 显示全部楼层 |阅读模式

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

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

x
def update(part,new_word):
    new_line = part[0]
    for each_part in part[1:]:
        new_line += new_word
        new_line += each_part
    return new_line

file_name = input('请输入文件名:')
old_word = input('请输入需要替换的单词或字符:')
new_word = input('请输入新的单词或字符:')

f = open(file_name,'r')

list1 = []
number = 0
for each_line in f:
    list1.append(each_line)
    number += each_line.count(old_word)
print('文件%s中共有%d个【%s】'%(file_name,number,old_word))

f.close()

print('您确定要把所有的【%s】替换为【%s】吗?'%(old_word,new_word))
YN = input('【YES/NO】:')
if YN == 'YES' or YN == 'yes':
    f = open(file_name,'w')
    for each_line in list1:
        if old_word in each_line:
            new_line = update(each_line.split(old_word),new_word = new_word)
            line_index = list1.index(each_line)
            list1.remove(each_line)
            list1.insert(line_index,new_line)
f.writelines(list1)
f.close()
    这是标准答案,
for each_line in list1:
        if old_word in each_line:
            new_line = update(each_line.split(old_word),new_word = new_word)
            line_index = list1.index(each_line)
            list1.remove(each_line)
            list1.insert(line_index,new_line)
这个地方,如果文件中有两行相同的内容,在执行 list1.remove(each_line)这一步的时候不会全部删除吗? 全部删除的话不会影响结果么?
最佳答案
2020-6-7 00:08:24
本帖最后由 Twilight6 于 2020-6-7 00:16 编辑

在执行 list1.remove(each_line)这一步的时候不会全部删除吗? 全部删除的话不会影响结果么?

不会全部删除 只删除了遍历到的那一段,然后list1.insert(line_index,new_line) 又将字符串替换好的加入了列表中去

就相当于达到了替换的效果,实际上是先删除列表中对应位置的字符串,然后再在之前删去元素的位置重新插入被替换部分字符的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-6 23:42:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-7 00:08:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-7 00:16 编辑

在执行 list1.remove(each_line)这一步的时候不会全部删除吗? 全部删除的话不会影响结果么?

不会全部删除 只删除了遍历到的那一段,然后list1.insert(line_index,new_line) 又将字符串替换好的加入了列表中去

就相当于达到了替换的效果,实际上是先删除列表中对应位置的字符串,然后再在之前删去元素的位置重新插入被替换部分字符的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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