python

【Python】言語処理100本ノック  03. 円周率

この記事の内容

問題文

03. 円周率

“Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.”という文を単語に分解し,各単語の(アルファベットの)文字数を先頭から出現順に並べたリストを作成せよ.

https://nlp100.github.io/ja/ch01.html

回答

# import re は正規表現操作モジュール
import re

sentence = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'

# sub()関数は第一引数に正規表現のパターン、第二引数に置換先文字列、第三引数に処理対象の文字列を指定
words = re.sub(r'[,.]', '' , sentence)
# split()関数で文字列を分割しリスト化する
word_list = words.split()
# 空の配列を用意
answer = []

# for文でiにword_listを格納していく
for i in word_list:
    #配列に、文字数len(i)を格納
    answer.append(len(i))

#[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]
print(answer)