字符串的高级处理

# 介绍一下字符串的高级处理方法

# 1.字符串的替换我想将字符串中的a替换成1,b替换成2,c替换成3

# 表示用"123"分别替换"abc"
trantab = str.maketrans("abc", "123")

s = "www.bilibili.com"

# 可以看到a被换成了1,b被换成了2,c被换成了3
print(s.translate(trantab))  # www.2ili2ili.3om

'''
1.先通过str.maketrans("要被替换的字符串", "用于替换的字符串")定义好一个替换的规则,类似于正则里的pattern
2.通过字符串.translate(pattern),即调用字符串的translate方法,将之前定义的pattern传进去,会返回一个新的替换之后的字符串
'''

# 关于transtab还有一种传参方式,通过字典
trantab1 = str.maketrans({"a": "1", "b": "2", "c": "3"})
s1 = "www.bilibili.com"
print(s1.translate(trantab1))  # www.2ili2ili.3om






# 字符串的渲染,类似于jinja2
import string
s2 = "hello $the $cruel $world "
# 将要渲染的字符串传进去
t = string.Template(s2)
# $可以看做是django、tornado里的{{}}
# 我们要传值,进行替换
print(t.substitute(the="THE", cruel="beautiful", world="WORLD"))  # hello THE beautiful WORLD
# 因此在原始的字符串中$是必不可少的,否则无法识别,就像django、或者tornado
# 如果模板不加{{}},那么是无法识别的,并且$和字符串之间不可以有空格,否则报错
# 当然也同样可以使用字典的方式传参
print(t.substitute({"the": "THE", "cruel": "CRUEL", "world": "WORLD"}))  # hello THE CRUEL WORLD

# 还有一个safe_substitute(),和substitute()的区别就是,我在上面定义了三个$,那么使用substitute每个都要替换
# 否则报错
'''
print(t.substitute({"the": "THE"}))
KeyError: 'cruel'
'''
# 但是safe_substitute()则不会有这个问题
print(t.safe_substitute({"the": "THE"}))  # hello THE $cruel $world
# 会发现剩余的两个不管了
# 如果就像单纯的表示$$怎么办?
# 使用两个$$就行了

  

猜你喜欢

转载自www.cnblogs.com/traditional/p/9417102.html