我有一个字符串,例如:字符切片的Python
s = "this is a string, a"
其中 ''(逗号)将始终是第三最后一个字符,又名S [-3]。
我正在想办法去除','但只能想到将字符串转换为列表,删除它,并将其转换回字符串。然而这对于简单的任务似乎有点太多了。
我怎样才能以更简单的方式完成这项工作?
我有一个字符串,例如:字符切片的Python
s = "this is a string, a"
其中 ''(逗号)将始终是第三最后一个字符,又名S [-3]。
我正在想办法去除','但只能想到将字符串转换为列表,删除它,并将其转换回字符串。然而这对于简单的任务似乎有点太多了。
我怎样才能以更简单的方式完成这项工作?
通常情况下,你只需要做:
s = s[:-3] + s[-2:]
的s[:-3]
给你一个字符串,最多,但不包括你要的逗号删除("this is a string"
)和s[-2:]
为您提供启动一个字符超越另一个字符串那个逗号(" a"
)。
然后,将这两个字符串连接在一起会给你以后的东西("this is a string a"
)。
Python字符串是不可变的。这意味着你必须创建至少1个新的字符串,以删除逗号,而不是在语言编辑字符串代替像C.
在文本中删除所有的“”字符,可以尝试
s = s.split(',')
>> ["this is a string", " a"]
s = "".join(s)
>> "this is a string a"
或者在同一行:
s0 = "".join(s.split(','))
几个变种,使用“删除最后一个逗号”而不是“删除第三的最后一个字符”是:
s[::-1].replace(",","",1)[::-1]
或
''.join(s.rsplit(",", 1))
但这些都是很丑陋。稍微好一点的是:
a, _, b = s.rpartition(",")
s = a + b
这可能是最好的办法,如果你不知道这个逗号的位置(除了字符串最后一个逗号),有效地需要一个“右替换”。但是Anurag's answer对于“删除倒数第三个字符”更为pythonic。
最好简单的方法是:你可以使用替换功能: -
>>> s = 'this is a string, a'
>>> s = s.replace(',','')
>>> s
'this is a string a'
这里,替换()功能搜索字符“”和更换‘’,即空字符
需要注意的是,替换()函数的默认所有的“”但如果你只是想更换一些情况下,一些“”你可以使用:s.replace(“”,‘’,1)
我认为string.replace是不可能的?你需要保留字符串中的其他逗号吗? – 2009-06-18 05:49:31
我愿意。让我去看看string.replace – sqram 2009-06-18 06:26:06