可变字符串
说明
在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。
但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO对象或 array 模块
python">import io
import arraydef modify_string_inplace(s, new_content):"""在原地修改字符串的内容。参数:s: io.StringIO 或 array.array('u'),包含原始字符串的对象。new_content: str,新的字符串内容。返回值:None,直接在对象中修改内容。"""if isinstance(s, io.StringIO):s.seek(0) # 移动到文件开头s.truncate() # 清空原有内容s.write(new_content) # 写入新内容elif isinstance(s, array.array):s[:] = array.array('u', new_content)def main():# 使用 io.StringIOoriginal_string = "Hello, Python!"s_io = io.StringIO(original_string)print(f"原始字符串 (使用 io.StringIO): {s_io.getvalue()}")new_content = "Hello, Java!"modify_string_inplace(s_io, new_content)print(f"修改后的字符串 (使用 io.StringIO): {s_io.getvalue()}")# 使用 array.arrayoriginal_string_array = array.array('u', original_string)print(f"原始字符串 (使用 array.array): {''.join(original_string_array)}")modify_string_inplace(original_string_array, new_content)print(f"修改后的字符串 (使用 array.array): {''.join(original_string_array)}")if __name__ == "__main__":main()
执行结果