エンジニアのサブルーチン

あまり注目されない組み込みのシステムエンジニアをやっています。エンジニア業界のこととか、勉強したこととかを不定期に更新していきます。

Python100本ノック 4問目

f:id:code_sugar:20190824122351p:plain

解答

num_select = (1, 5, 6, 7, 8, 9, 15, 16, 19)
letters = "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
result = {}

word = letters.split(' ')

for (num, gen) in enumerate(word,1):
  if num in num_select:
    result[gen[0:1]] = num
  else:
    result[gen[0:2]] = num

print(result)

学んだこと

辞書型配列

いわゆるハッシュのこと

辞書の新規作成
dic = {} #空の辞書作成
dic{"key1": "value1", "key2": "value2"} #キーバリュー型で直接的な作成
dic["key"] = "value" #変数的に作成する 

enumerate

for文でイテレーションするイテラブルオブジェクトの他にインデックス番号も同時にイテレートすることができる便利なもの

lists = ['test1','test2','test3','test4']

for (i, list) in enumerate(lists):
  print(i, list)

#(0, 'test1')
#(1, 'test2')
#(2, 'test3')
#(3, 'test4')

第2引数に開始番号を指定できる。

lists = ['test1','test2','test3','test4']

for (i, list) in enumerate(lists, 1):
  print(i, list)

#(1, 'test1')
#(2, 'test2')
#(3, 'test3')
#(4, 'test4')