Ways to slice a string?
要在字符串实例:P></
1 | s ="this is a string, a" |
我在
我的思考方式to remove the,but can only)of the字符串转换进入名单,deleting EN,EN和转换回字符串。不管一个人多在这似乎是太多为简单的任务。P></
我怎么能在简单的内部通道中的accomplish this?P></
通常,您只需执行以下操作:
1 | s = s[:-3] + s[-2:] |
然后,把这两个字符串连接在一起就可以得到你想要的(
使用"删除最后一个逗号"而不是"删除第三个最后一个字符"的几个变体是:
1 | s[::-1].replace(",","",1)[::-1] |
或
1 | ''.join(s.rsplit(",", 1)) |
但这些很难看。稍微好一点的是:
1 2 | a, _, b = s.rpartition(",") s = a + b |
如果您不知道逗号的位置(字符串中的最后一个逗号除外),并且实际上需要"从右替换",那么这可能是最好的方法。然而,阿努拉格的回答更像是"删除第三个最后一个字符"的Python。
python字符串是不可变的。这意味着您必须创建至少1个新字符串才能删除逗号,而不是在C语言中就地编辑字符串。
如果要删除文本中的每个","字符,可以尝试
1 2 3 4 | s = s.split(',') >> ["this is a string"," a"] s ="".join(s) >>"this is a string a" |
或在一行中:
1 | s0 ="".join(s.split(',')) |
要将任意长度的字符串切片为任意长度的多个等长切片,可以执行以下操作
1 2 3 | def slicer(string, slice_length): return [string[i:i + slice_length] for i in xrange(0, len(string), slice_length)] |
如果slice_length没有精确地划分为len(string),那么在列表的末尾将有一个单独的slice来保存剩余部分。
最好的简单方法是:您可以使用replace函数作为:
1 2 3 4 | >>> s = 'this is a string, a' >>> s = s.replace(',','') >>> s 'this is a string a' |
在此,replace()函数搜索字符','并将其替换为',即空字符
注意,replace()函数默认为all",",但如果您只想替换某些",",在某些情况下,您可以使用:s.replace(",","",1)