You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将字符串首尾改为双引号并替换或删除内部双引号?

问题原因

原代码不生效有两个核心问题:

  • 字符串是Python中的不可变类型,replace方法只会返回替换后的新字符串,不会修改原列表中的元素,你没有把处理后的结果存储下来
  • 原生Python的字符串replace方法不支持字典入参和regex关键字参数,这个写法是pandas Series对象的专属API,遍历普通列表的字符串时无法生效

实现方案

方案1:得到第二种输出(移除所有引号)

遍历列表逐个替换双引号、单引号为空即可,两种写法可选:

普通循环写法

original_list = [ "sentence_1", 'sentence_2 of "me"']
processed_list = []
for item in original_list:
    processed_item = item.replace('"', '').replace("'", '')
    processed_list.append(processed_item)

列表推导式写法(更简洁)

original_list = [ "sentence_1", 'sentence_2 of "me"']
processed_list = [item.replace('"', '').replace("'", '') for item in original_list]

处理后输出为:

["sentence_1", "sentence_2 of me"]

方案2:得到第一种输出(双引号替换为单引号)

仅替换双引号为单引号即可:

original_list = [ "sentence_1", 'sentence_2 of "me"']
processed_list = [item.replace('"', "'") for item in original_list]

处理后输出为:

[ "sentence_1", "sentence_2 of 'me'" ]

如果你操作的是pandas Series

如果你原本就是要处理pandas的序列结构,修改正则匹配规则即可生效:

import pandas as pd
series = pd.Series([ "sentence_1", 'sentence_2 of "me"'])
# 实现第二种输出(移除所有引号)
processed_series = series.replace(r'["\']', '', regex=True)
# 实现第一种输出(双引号换单引号)
processed_series = series.replace(r'"', "'", regex=True)

内容的提问来源于stack exchange,提问作者jos97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:27:05