Pythonにはスペースを無視せずに文字列を分割する関数はありますか?

StackOverflow https://stackoverflow.com/questions/113534

  •  02-07-2019
  •  | 
  •  

質問

Python には、結果のリスト内のスペースを無視せずに文字列を分割する関数はありますか?

例えば:

s="This is the string I want to split".split()

私に与えます

>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']

のようなものが欲しいです

['This',' ','is',' ', 'the',' ','string', ' ', .....]
役に立ちましたか?

解決

>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']

re.split() でキャプチャ括弧を使用すると、関数は区切り文字も返します。

他のヒント

標準ライブラリにはそれを単独で行う関数はないと思いますが、「パーティション」がそれに近いものです

おそらく最良の方法は正規表現を使用することです (私ならどの言語でもこれを行う方法です!)

import re
print re.split(r"(\s+)", "Your string here")

まさにそれについての愚かな答え:

mystring.replace(" ","! !").split("!")

あなたがやろうとしていることの難しい部分は、分割するためのキャラクターを与えていないことです。split() は、指定した文字の文字列を分解し、その文字を削除します。

おそらくこれが役立つかもしれません:

s = "String to split"
mylist = []
for item in s.split():
    mylist.append(item)
    mylist.append(' ')
mylist = mylist[:-1]

面倒ですが、これで何とかなります...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top