如何在Python中拆分字符串?

时间:2009-12-03 09:16:03

标签: python string

我已阅读文档但未完全了解如何操作。

我明白我需要在字符串中加入某种标识符,以便函数可以找到拆分字符串的位置(除非我可以定位句子中的第一个空格?)。

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

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

2 个答案:

答案 0 :(得分:19)

在字符串上使用split方法:

>>> "Sico87 is an awful python developer".split(' ', 1)
['Sico87', 'is an awful python developer']

工作原理:

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

    >>> "Sico87 is an awful python developer".split(' ')
    ['Sico87', 'is', 'an', 'awful', 'python', 'developer']
    
  5. 当然,您也可以将子字符串存储在单独的变量中而不是列表中:

    >>> a, b = "Sico87 is an awful python developer".split(' ', 1)
    >>> a
    'Sico87'
    >>> b
    'is an awful python developer'
    

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

    >>> 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
    

答案 1 :(得分: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)同样有效但返回 变量 物品数量。它将返回一个或两个项目的元组,第一个项目是直到分隔符的第一个单词,第二个单词是字符串的其余部分(如果有的话)。