问题:第一次出现时分裂
在首次出现定界符时分割字符串的最佳方法是什么?
例如:
"123mango abcd mango kiwi peach"
首先分裂mango
得到:
"abcd mango kiwi peach"
回答 0
从文档:
str.split([sep[, maxsplit]])
使用sep作为分隔符字符串,返回字符串中单词的列表。如果给出了maxsplit,则最多完成maxsplit分割(因此,列表中最多
maxsplit+1
包含元素)。
s.split('mango', 1)[1]
回答 1
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
回答 2
对我来说,更好的方法是:
s.split('mango', 1)[-1]
…因为如果发生这种情况不在字符串中,您将得到“ IndexError: list index out of range"
。
因此-1
不会造成任何伤害的原因发生次数已经设置为1。
回答 3
您也可以使用str.partition
:
>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
使用的优点str.partition
是它总是会返回以下形式的元组:
(<pre>, <separator>, <post>)
因此,这使得解压缩输出变得非常灵活,因为在结果元组中总会有3个元素。
回答 4
df.columnname[1].split('.', 1)
这将以第一个出现的“。”分割数据。在字符串或数据框列中的值。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。