用 Python 实现“替换”功能
string1="aaa新年快乐bbb"
string2=string1.replace("新年快乐", "恭喜发财")
print(string2)
# aaa恭喜发财bbb
string3="aaa新年快乐bbb新年快乐ccc"
string4=string3.replace("新年快乐", "恭喜发财", 2)
print(string4)
# aaa恭喜发财bbb恭喜发财ccc
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
实现批量替换
用字典 + 自定义函数替代 replace 函数实现批量“一对一”替换
# 保存映射关系的函数,函数的主要功能是通过字典实现的
def replace_city(city_name):
return {
"GUANGDONG":"广东省",
"HEBEI":"河北省",
"HUNAN":"湖南省",
"HANGZHOU":"杭州市"
}[city_name]
# 根据映射关系实现批量循环
def replace_multi(my_citys, replaced_string):
for pinyin_city in my_citys:
replaced_string = replaced_string.replace(
pinyin_city,replace_city(pinyin_city))
return replaced_string
# 哪些城市要替换
citys = ("GUANGDONG", "HUNAN")
# 需要替换的字符串
string1 = """
GUANGDONG,简称“粤”,中华人民共和国省级行政区,省会广州。
因古地名广信之东,故名“GUANGDONG”。位于南岭以南,南海之滨,
与香港、澳门、广西、HUNAN、江西及福建接壤,与海南隔海相望。"""
string2 = replace_multi(citys, string1)
print(string2)
# 广东省,简称“粤”,中华人民共和国省级行政区,省会广州。
# 因古地名广信之东,故名“广东省”。位于南岭以南,南海之滨,
# 与香港、澳门、广西、湖南省、江西及福建接壤,与海南隔海相望。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
用逻辑判断 + 自定义函数替代 replace() 函数实现“多对一”替换
age = 18
if age>0 and age<=6:
value="少年"
elif age>7 and age<=18:
value=青年"
elif age>19 and age<=65:
value="中年"
else:
value="老年"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
总结
字符串的 replace() 函数;
使用字典做“一对一”映射,通过字典类型的键值对, 实现内容替换;
使用逻辑判断实现“多对一”映射,将 if 判断的条件替换为匹配成功的结果。
替换操作要根据被替换内容的形式,选择合适的方法,replace() 函数更适合单个替换,字典适合“一对一”替换,if 逻辑判断适合将一个范围替换成一个值。
除了灵活掌握不同的替换方式,我还建议你把字典和逻辑判断放入自定义函数当中,当你遇到类似需求的时候就可以直接复用代码。