【问题标题】:python split string that has both spaces and dashpython拆分字符串,同时具有空格和破折号
【发布时间】:2017-07-03 12:50:04
【问题描述】:

我有一个迭代产生以下string

"always - blue"
"sometimes-yellow - red"
"seldom - blue"
"maybe-red - blue"
"mostly-blue - yellow"

我想做的是用" - "分割字符串

期望的结果

['always', 'blue']
['sometimes-yellow', 'red']
['seldom', 'blue']
['maybe-red', 'blue']
['mostly-blue', 'yellow']

我尝试过a.split("-")a.split(" - "),但这似乎将每个有- 的场合分开。 ['sometimes-yellow', 'red'] 被拆分为 ['sometimes', 'yellow', 'red']。这不是我想要的。

我应该如何拆分字符串以实现我想要的?

【问题讨论】:

  • 为什么a.split(" - ") 不起作用?你还想要lists 还是strings 作为输出?
  • a.split(" - ") 应该可以工作。
  • 你想要的结果是真的"['always', 'blue']"还是真的["always", "blue"]
  • 对不起。我希望它在列表输出中。不是字符串输出。
  • 您可以使用 rsplit('-') 来拆分列表中的字符串。 string.rsplit(' - ').

标签: python string split


【解决方案1】:

您确定在主题字符串或拆分参数中的“-”两侧都有简单的空格字符吗? 您的编辑器可能正在插入一个标签。

否则,将“空格减空格”序列作为 arg 的简单 split() 将执行您想要的操作。

我的想法是:“他有什么应该工作,那么还有什么可能出错的?”

>>> z = "always-red-xxx-sss - blue"

>>> z.split(" - ")

['always-red-xxx-sss', 'blue']

【讨论】:

    【解决方案2】:

    您可以使用 rsplit() 将字符串拆分为所需的格式。

    >>> string="always - blue"
    >>> string.rsplit(' - ')
    ['always','blue']
    >>> string2="mostly-blue - yellow"
    >>> string2.rsplit(' - ')
    ['mostly-blue','yellow']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      相关资源
      最近更新 更多