読者です 読者をやめる 読者になる 読者になる

mu chance or much chance ?

日々の戯れ言

言語処理100本ノック 2015 04

  • 問題

04. 元素記号
"Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."という文を単語に分解し,1, 5, 6, 7, 8, 9, 15, 16, 19番目の単語は先頭の1文字,それ以外の単語は先頭に2文字を取り出し,取り出した文字列から単語の位置(先頭から何番目の単語か)への連想配列(辞書型もしくはマップ型)を作成せよ.

  • 解答例
strs = "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
words = strs.split(" ")
singleNum = [1, 5, 6, 7, 8, 9, 15, 16, 19]
dicts = {}

for i in range(len(words)):
    len = 1 if i + 1 in singleNum else 2
    dicts[words[i][:len]] = i + 1

for k, v in sorted(dicts.items(), key = lambda x : x[1]):
    print(k, v)
  • コメント

「辞書」,「辞書のvalueでソートしたい場合」について学びました.