python、ubuntu的操作

自己造轮子---replace

2019-03-04  本文已影响0人  我本无常
s = 'a123456123789'
x = input('原字符')
k = input('替换')
def change(s):
    for i in range(len(s)):
        for j in range(i,len(s)):
            if x == s[i:j]:
                s1 = s[:i]
                c = s[j:]
                s = s1+k+c
    return s

new = change(s)
count={}
for x in s:
    count.setdefault(x, 0)
    count[x] = count[x] + 1
    v = count[x]
for i in range(v):
    change(new)
print(new)

下面是有个大佬的代码,具体的链接忘记了

# -*- coding:utf-8 -*-
# def customize_replace(s, old_str, new_str, max=None):
#     # 存储新的字符串
#     result = ''
#
#     # 存储old_str的index
#     replace_str_index_in_s = []
#
#     for i in range(len(s)):
#         if s[i:i + len(old_str)] == old_str:
#             replace_str_index_in_s.append(i)
#             print(i)
#
#
#     j = 0
#     if max == None:
#         while j < len(s):
#             # 遍历s[j],j的值不是按序+1,因此用while循环
#             if j in replace_str_index_in_s:
#                 result += new_str
#                 j += len(old_str)
#             else:
#                 result += s[j]
#                 j += 1
#     else:
#         count = 0
#         # 统计替换次数
#         while j < len(s):
#             if count < max and j in replace_str_index_in_s:
#                 print('if执行', j, result)
#                 result += new_str
#                 j += len(old_str)
#                 count += 1
#             else:
#                 print('else执行', j, result)
#                 result += s[j]
#                 j += 1
#     return result
#
#
# res = customize_replace('ababababddd', 'ab', '!?.012 ')
# print(res)
上一篇 下一篇

猜你喜欢

热点阅读