如何在Python中拆分字符串?

Udd*_*ers 6 python string

我已阅读文档,但不完全了解如何操作.

我理解我需要在字符串中有一些标识符,以便函数可以找到拆分字符串的位置(除非我可以定位句子中的第一个空格?).

那么例如我将如何拆分: "Sico87 is an awful python developer"to "Sico87""is an awful Python developer"

从数据库中检索字符串(如果这很重要).

Ste*_*202 19

split在字符串上使用该方法:

>>> "Sico87 is an awful python developer".split(' ', 1)
['Sico87', 'is an awful python developer']
Run Code Online (Sandbox Code Playgroud)

这个怎么运作:

  1. 每个字符串都是一个对象.字符串对象具有在其上定义的某些方法,例如split在这种情况下.你打电话给他们obj.<methodname>(<arguments>).
  2. 第一个参数split是分隔各个子串的字符.在这种情况下,这是一个空间,' '.
  3. 第二个参数是应该执行拆分的次数.在你的情况下1.省略第二个参数尽可能多地应用拆分:

    >>> "Sico87 is an awful python developer".split(' ')
    ['Sico87', 'is', 'an', 'awful', 'python', 'developer']
    
    Run Code Online (Sandbox Code Playgroud)

当然,您也可以将子字符串存储在单独的变量中而不是列表中:

>>> a, b = "Sico87 is an awful python developer".split(' ', 1)
>>> a
'Sico87'
>>> b
'is an awful python developer'
Run Code Online (Sandbox Code Playgroud)

但请注意,如果某些输入不包含空格,这将导致问题:

>>> a, b = "string_without_spaces".split(' ', 1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
Run Code Online (Sandbox Code Playgroud)


Wil*_*ill 14

使用partition(' ')总是返回元组中的三个项目 - 第一个位直到分隔符,分隔符,然后是后面的位.元组中不适用的插槽仍然存在,只是设置为空字符串.

示例: "Sico87 is an awful python developer".partition(' ')退货["Sico87"," ","is an awful python developer"]

"Sico87 is an awful python developer".partition(' ')[0] 回报 "Sico87"

另一种更棘手的方法是使用split(' ',1)相似的方法,但返回可变数量的项目.它将返回一个或两个项目的元组,第一个项目是第一个单词直到分隔符,第二个项目是字符串的其余部分(如果有的话).

  • 错误使用`maxsplit`参数 (2认同)