12

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

例えば:

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

私にくれます

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

私は何かが欲しい

['This',' ','is',' ', 'the',' ','string', ' ', .....]
4

4 に答える 4

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

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

于 2008-09-22T07:08:04.677 に答える
4

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

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

import re
print re.split(r"(\s+)", "Your string here")
于 2008-09-22T07:08:59.463 に答える
2

ばかげた答えです。

mystring.replace(" ","! !").split("!")
于 2013-04-20T18:34:12.157 に答える
1

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

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

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

散らかっていますが、それはあなたのためにトリックを行います...

于 2008-09-22T07:07:58.357 に答える