1. ホーム
  2. python

[解決済み] 文字列を単語のリストに変換する?

2023-04-12 19:12:58

質問

Pythonを使って、文字列を単語のリストに変換しようとしています。私は次のようなものを取りたい。

string = 'This is a string, with words!'

そして、次のようなものに変換します。

list = ['This', 'is', 'a', 'string', 'with', 'words']

句読点や空白が省略されていることに注意してください。最速の方法は何でしょうか?

どのように解決するのか?

これを試してみてください。

import re

mystr = 'This is a string, with words!'
wordList = re.sub("[^\w]", " ",  mystr).split()

どのように機能するか

ドキュメントから :

re.sub(pattern, repl, string, count=0, flags=0)

文字列中のpatternの左端の重複しない箇所をreplで置き換えた文字列を返す。パターンが見つからない場合は、stringは変更されずに返される。 replは文字列または関数である。

ということで、我々の場合は.

patternは英数字以外の文字です。

[を意味し、英数字と等しい。 [a-zA-Z0-9_] となります。

a~z、A~Z、0~9、アンダースコアのことです。

というわけで、英数字以外の文字にマッチして、スペースに置き換えます。

そして、split() で文字列をスペースで分割し、リストに変換しています。

ということで、'hello-world'

は'hello world'になります。

re.subで

とすると ['hello' , 'world'] となります。

split()の後

何か疑問が生じたら教えてください。