python-修改字符串

在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。
因此改变一个字符串的元素需要新建一个新的字符串。
常见的修改方法有以下4种。

方法1:将字符串转换成列表后修改值,然后用join组成新字符串

复制代码

>>> s='abcdef'                  #原字符串
>>> s1=list(s)                  #将字符串转换为列表
>>> s1                         
['a', 'b', 'c', 'd', 'e', 'f']  #列表的每一个元素为一个字符
>>> s1[4]='E'                   #将列表中的第5个字符修改为E
>>> s1[5]='F'                   #将列表中的第5个字符修改为E
>>> s1
['a', 'b', 'c', 'd', 'E', 'F']  
>>> s=''.join(s1)               #用空串将列表中的所有字符重新连接为字符串
>>> s
'abcdEF'                        #新字符串

复制代码

方法2: 通过字符串序列切片方式

复制代码

>>> s='Hello World' 
>>> s=s[:6] + 'Bital'          #s前6个字符串+'Bital'
>>> s
'Hello Bital'
>>> s=s[:3] + s[8:]            #s前3个字符串+s第8位之后的字符串
>>> s
'Heltal'

复制代码

方法3: 使用字符串的replace函数

复制代码

>>> s='abcdef'
>>> s=s.replace('a','A')        #用A替换a
>>> s
'Abcdef'
>>> s=s.replace('bcd','123')   #用123替换bcd 
>>> s
'A123ef'

复制代码

方法4: 通过给一个变量赋值(或者重新赋值)

复制代码

>>> s='Hello World'
>>> s2=' 2017'             #变量赋值
>>> s=s+s2
>>> s
'Hello World 2017'

>>> s='Hello World'
>>> s='Hello World 2017'   #重新赋值
>>> s
'Hello World 2017'
### Python 字符串变换方法 在 Python 中,字符串是一种不可变的数据类型。这意味着一旦创建了一个字符串对象,就不能修改它。然而,可以通过多种方式实现字符串的变换效果。 #### 1. 连接字符串 当需要将两个字符串连接在一起,可以使用加号 (`+`) 操作符。如果其中一个字符串是 Unicode 类型,则另一个普通字符串会自动被转换为 Unicode 类型后再执行连接操作[^1]。 ```python str_result = 'hello' + u' world' print(str_result) # 输出:hello world ``` #### 2. 使用 `translate` 方法替换或删除字符 通过 `str.translate()` 方法可以根据指定的映射表来替换字符串中的某些字符或者删除特定字符[^2]。此方法通常配合 `maketrans()` 函数一起使用以构建翻译表。 ```python table = str.maketrans({'a': None, 'e': '*', 'o': '@'}) # 删除'a', 替换'e'为'*', 替换'o'为'@' result = "hello".translate(table) print(result) # 输出:h*ll@ ``` #### 3. 数字与运算符提取并计算总和 对于包含数字以及算术符号(如 "+" 和 "-")的复杂字符串,可先筛选出其中的有效数值部分再分别求解其正负数之和[^3]。 ```python def calculate_expression(s): res = "" for char in s: if char.isdigit() or char == '+' or char == '-': res += char total_sum = 0 terms = res.split('+') for term in terms: subterms = term.split('-') first_part = sum([int(x) for x in subterms[:1]]) remaining_parts = [-int(y) for y in subterms[1:] if y != ""] current_value = first_part + sum(remaining_parts) total_sum += current_value return total_sum expression_string = "-5+8--7" calculated_total = calculate_expression(expression_string) print(calculated_total) # 结果应为6 (-5+8-(-7)) ``` #### 4. 变量值互换 为了交换两个变量的内容而不借助额外空间,可以直接利用元组拆包特性完成这一任务;当然也可以引入第三个临存储单元作为过渡媒介来进行传统意义上的值传递过程[^4]。 ```python # 方式一:不需中间变量 a, b = "hello", "world" b, a = a, b print(f"a={a}, b={b}") # 输出:a=world,b=hello # 方式二:采用辅助变量c暂存数据 temp_holder = a a = b b = temp_holder print(f"a={a}, b={b}") # 同样得到上述结果 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值