目录
Replace the first character in a String in Python
- 替换字符串中的第一个或前 N 个字符
- 使用 replace() 替换字符串中的第一个或前 N 个字符
- 使用 re.sub() 替换字符串中的第一个或前 N 个字符
- 使用 list() 替换字符串中的第一个或前 N 个字符
在 Python 中替换字符串中的第一个或前 N 个字符
使用字符串切片替换字符串中的第一个或前 N 个字符。
字符串的切片表示第一个 N 之后的字符,因此我们可以使用加法 (+) 运算符在替换字符前面加上。
my_str = 'bobbyhadz.com' # ✅ replace first character in a string new_str = '_' + my_str[1:] print(new_str) # 👉️ _obbyhadz.com
要替换字符串中的前 N 个字符,请指定起始索引 N。
my_str = 'bobbyhadz.com' n = 5 new_str = 'new_' + my_str[n:] print(new_str) # 👉️ new_hadz.com
我们使用字符串切片来替换字符串的第一个或前 N 个字符。
切片my_str[1:]
从索引处的字符开始1
,一直到字符串的末尾。
my_str = 'bobbyhadz.com' print(my_str[1:]) # 👉️ obbyhadz.com
字符串切片的语法是my_str[start:stop:step]
.
start
是包含的,而stop
索引是排他的(最多,但不包括)。Python 索引是从零开始的,因此字符串中的第一个字符的索引为0
,最后一个字符的索引为-1
or len(my_str) - 1
。
最后一步是使用加法 (+) 运算符来添加替换字符串。
my_str = 'bobbyhadz.com' new_str = '_' + my_str[1:] print(new_str) # 👉️ _obbyhadz.com
如果您的情况下的替换值不是字符串类型,请使用该类str()
将其转换为字符串。
my_str = 'bobbyhadz.com' new_str = str(123) + my_str[1:] print(new_str) # 👉️ 123obbyhadz.com
加法 (+) 运算符左右两侧的值需要是兼容类型。
或者,您可以使用该str.replace()
方法。
使用 replace() 替换字符串中的第一个或前 N 个字符
您还可以使用该str.replace()
方法替换字符串中的第一个或前 N 个字符。
my_str = 'bobbyhadz.com' new_str = my_str.replace('b', '_', 1) print(new_str) # 👉️ _obbyhadz.com
该str.replace()
方法可以传递count
参数 1 以仅替换字符串中第一次出现的子字符串
可以使用相同的方法替换字符串的前 N 个字符。
my_str = 'bobbyhadz.com' new_str = my_str.replace('bob', '___', 1) print(new_str) # 👉️ ___byhadz.com
str.replace
方法返回字符串的副本,其中所有出现的子字符串都被提供的替换项替换。
该方法采用以下参数:
姓名 | 描述 |
---|---|
老的 | 字符串中我们要替换的子串 |
新的 | 每次出现的替换old |
数数 | count 只替换第一次出现的(可选) |
该方法不会更改原始字符串。字符串在 Python 中是不可变的。
0
如果不知道值,也可以选择索引处的字符。
my_str = 'bobbyhadz.com' new_str = my_str.replace(my_str[0], '_', 1) print(new_str) # 👉️ _obbyhadz.com
count
为1
意味着我们将只替换字符串中第一次出现的子字符串。要使用此方法替换前 N 个字符,请使用字符串切片。
my_str = 'bobbyhadz.com' n = 3 new_str = my_str.replace(my_str[:n], '___', 1) print(new_str) # 👉️ ___byhadz.com
切片my_str[:n]
从 index 开始0
,一直到 index ,但不包括 index n
。
使用 re.sub() 替换字符串中的第一个或前 N 个字符
或者,您可以使用该re.sub()
方法。
当count
参数设置为 1 时,该re.sub()
方法仅替换字符串中第一次出现的子字符串。
import re my_str = 'bobbyhadz.com' new_str = re.sub('b', '_', my_str, 1) print(new_str) # 👉️ _obbyhadz.com
该re.sub()
方法可以选择与正则表达式一起使用。
如果您需要替换字符串中的前 N 个字符,同样的方法也适用。
import re my_str = 'bobbyhadz.com' new_str = re.sub('bob', '___', my_str, 1) print(new_str) # 👉️ ___byhadz.com
re.sub方法返回一个新字符串,该字符串是通过用提供的替换替换模式的出现而获得的。
如果未找到模式,则按原样返回字符串。
re.sub()
是我们要在字符串中匹配的模式,第二个参数是匹配项的替换。最后一个参数是count
– 要替换的模式出现的最大次数。
0
如果不知道其值,也可以选择索引处的字符。
import re my_str = 'bobbyhadz.com' new_str = re.sub(my_str[0], '_', my_str, 1) print(new_str) # 👉️ _obbyhadz.com
或者,您可以使用该类list()
。
使用 list() 替换字符串中的第一个或前 N 个字符
这是一个三步过程:
- 使用该类
list()
将字符串转换为字符列表。 - 更新列表中第一个元素的值。
- 使用该
str.join()
方法将列表连接成一个字符串。
my_str = 'bobbyhadz.com' list_of_chars = list(my_str) # 👇️ ['b', 'o', 'b', 'b', 'y', 'h', 'a', 'd', 'z', '.', 'c', 'o', 'm'] print(list_of_chars) list_of_chars[0] = '_' new_str = ''.join(list_of_chars) print(new_str) # 👉️ _obbyhadz.com
我们首先使用该类list()
将字符串转换为字符列表。
与字符串相反,列表是可变的,因此我们可以直接更新特定索引处的列表元素的值。
最后一步是使用该str.join()
方法将列表连接成一个字符串。
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
调用该方法的字符串用作元素之间的分隔符。
我们使用空字符串分隔符将列表连接成一个没有分隔符的字符串。
可以使用相同的方法来替换字符串的前 N 个字符。
my_str = 'bobbyhadz.com' list_of_chars = list(my_str) # 👇️ ['b', 'o', 'b', 'b', 'y', 'h', 'a', 'd', 'z', '.', 'c', 'o', 'm'] print(list_of_chars) n = 3 list_of_chars[:n] = '___' new_str = ''.join(list_of_chars) print(new_str) # 👉️ _obbyhadz.com
切片list_of_chars[:n]
从 index 开始0
,一直到 index ,但不包括 index n
。