Pythonにはスペースを無視せずに文字列を分割する関数はありますか?
質問
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]
面倒ですが、これで何とかなります...
所属していません StackOverflow