問題文
問題の概要
①文を単語に分割する②各単語の先頭の1文字もしくは2文字を取り出すーーの2段階で処理します。②の処理では、条件分岐が必要です。
①の処理は「03. 円周率」と同様です。
②の条件分岐に当たって、単語の順番情報が必要なため「enumerate(リスト)」を利用します。第2引数として「1」を与え、インデックスを0ではなく1始まりにしています。
最後にタプルのリストを「dict()」で囲うことで、辞書型のデータに変換しました。
def extract_chars(i, word): if i in [1, 5, 6, 7, 8, 9, 15, 16, 19]: return (word[0], i) else: return (word[:2], i) raw_text = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.' text = raw_text.replace('.', '').replace(',', '') ans = [extract_chars(i, w) for i, w in enumerate(text.split(), 1)] print(dict(ans))