首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python str.replace中,用同样的方式处理双引号和单引号吗?

在Python str.replace中,用同样的方式处理双引号和单引号吗?
EN

Stack Overflow用户
提问于 2018-08-10 01:50:00
回答 2查看 87关注 0票数 -2

请原谅我,我是Python的新手。我编写了一个简单的脚本来解析一个长字符串,该字符串包含多个用单引号括起来的子字符串。我使用str.replace将单引号替换为空字符串。但是,输入字符串将改为使用双引号。我无意中用新的输入运行了脚本,令我惊讶的是,它仍然将所有双引号都替换为空字符串。

我想我在Python的某个地方读到过,双引号和单引号是一样的。这是正确的说法吗?

更新:

我道歉。我一定是把别人搞糊涂了,包括我自己。我运行了快速测试脚本来验证我从原始脚本中看到的输出,但是我没有看到相同的输出。我尝试用str.replace("'","")替换包含双引号的输入字符串(例如str="foo \"abc\" \"efg\"" ),但没有成功。我不得不重新检查它试图解析的原始脚本和输入字符串。感谢您花时间查看这个帖子。

我只是验证了原始脚本的一部分(相当长并且有点复杂,因为我说我没有在我的问题的上下文中讲述关于这个脚本的全部事实,我对此感到抱歉)误导我相信(在一段时间内) Python str.replace以同样的方式处理双引号和单引号,这是错误的假设。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-10 01:57:57

在python中,它们被同等对待。但这意味着,就语言而言,您可以使用单引号或双引号。然而,它们不是相同的字符。如果你有,例如。

代码语言:javascript
复制
text = "I said 'hello' to him"

所以,如果你运行

代码语言:javascript
复制
text.replace("'", "")

这些单引号将被替换。但如果你这样做了

代码语言:javascript
复制
text.replace('"', "")

不会发生任何事情,因为您的字符串不包含双引号

票数 2
EN

Stack Overflow用户

发布于 2018-08-10 01:59:05

在您的代码中,单引号和双引号的处理方式相同。换句话说,

代码语言:javascript
复制
'Hello' == "Hello"

无论你使用的是'还是"都没有区别。

但是,假设您有一个包含字符'"的字符串

代码语言:javascript
复制
long_string = "So I said 'and what do you mean by that?' and she responded 'I dunno' and ..."

这是一个包含'字符的字符串。注意,我在代码中使用"作为字符来指定这个字符串;因此,我可以在字符串中使用'字符,而不必对它们进行转义。反过来也是一样的:

代码语言:javascript
复制
>>> print( '"' )   # "
>>> print( "'" )   # '

如果要在双引号字符串中包含双引号字符,则必须对其进行转义:

代码语言:javascript
复制
>>> print( "\"" )  # "
>>> print( '\'' )  # '

现在,回到你的问题上。您有一个像long_string这样的字符串,其中包含单引号字符。要删除它们,您可以简单地执行以下操作

代码语言:javascript
复制
string_without_quotes = long_string.replace( "'", "" ) # or '\''
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51773139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档