So-net無料ブログ作成
検索選択

Python で文字列の数字部分と数字じゃない部分の集まりで分割したい [Python]

会社の Slack で質問して、いい回答が出たけど、忘れちゃうのでメモっておく

"ab123d45fgh67" -> ["ab","123","d","45","fgh","67"]

みたいに、文字列を分割して文字列の配列にしたい
itertools を使う例と re を使う例が出た
>>> import itertools
>>> [''.join(it) for _, it in itertools.groupby("ab123d45fgh67", str.isdigit)]
['ab', '123', 'd', '45', 'fgh', '67']
>>>

>>> import re
>>> re.findall(r'(\d+|\D+)', "ab123d45fgh67")
['ab', '123', 'd', '45', 'fgh', '67']
>>> 


やっていることはなんとなくわかるが、次にやりたくなったときにメモ残しておかないと再現できない自信がある

python2.7 でも python3.5 でも動いた。 ちょっとびっくり。
str.isdigit って渡しかた 3.5 でもできるんだな
コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

コメント 0

コメントの受付は締め切りました

Facebook コメント

トラックバック 0