Pythonの基礎的な所のメモです
Python素人なので間違っている所あれば優し目で教えて下さい。
hashira = [{'Name': '富岡義勇', 'Kokyuu': '水' },
{'Name': '胡蝶しのぶ', 'Kokyuu': '蟲' },
{'Name': '煉獄杏寿郎', 'Kokyuu': '炎' },
{'Name': '宇髄天元', 'Kokyuu': '音' },
{'Name': '時透無一郎', 'Kokyuu': '霞' },
{'Name': '甘露寺蜜璃', 'Kokyuu': '恋' },
{'Name': '悲鳴嶼行冥', 'Kokyuu': '岩' },
{'Name': '伊黒小芭内', 'Kokyuu': '蛇' },
{'Name': '不死川実', 'Kokyuu': '風' }]
柱の名前を取得!
name = [d.get('Name') for d in hashira]
print(name)
# => ['富岡義勇', '胡蝶しのぶ', '煉獄杏寿郎', '宇髄天元', '時透無一郎', '甘露寺蜜璃', '悲鳴嶼行冥', '伊黒小芭内', '不死川実']
共通キーがある場合はget(キー名)
ではなく[キー名]
で値で取得も出来る!
kokyuu = [d['Kokyuu'] for d in hashira]
print(kokyuu)
# => ['水', '蟲', '炎', '音', '霞', '恋', '岩', '蛇', '風']
次は主要キャラ達
kisatsutai = [{'Name': '竈門炭治郎', 'Kokyuu': '水' },
{'Name': '竈門禰豆子' },
{'Name': '嘴平伊之助', 'Kokyuu': '獣' },
{'Name': '我妻善逸', 'Kokyuu': '雷' }]
# 禰豆子は呼吸が使えない。
柱と同じようにKokyuuを取得してみます。
name = [d.get('Name') for d in kisatsutai]
print(name)
# ['水', None, '獣', '雷']
見ての通り、get()
メソッドはデフォルトではキーが存在しないときはNone
を返します。
get()
の第二引数でデフォルト値を渡す事も可能
name = [d.get('Name', 'ムーー') for d in hashira]
print(name)
# => ['水', 'ムーー', '獣', '雷']
では、get(キー名)
ではなく[キー名]
なら?
指定したキーを持たない要素が存在する場合はエラーになります。
kokyuu = [d['Kokyuu'] for d in kisatsutai]
print(kokyuu)
# => KeyError: 'Kokyuu'
if文を使って指定したキーを持たない要素を除外することも可能!
name = [d['Kokyuu'] for d in kisatsutai if 'Kokyuu' in d]
print(name)
# => ['水', '獣', '雷']
以上、劇場版鬼滅の刃を2回見たPython素人がお送りいたしました。
=> MX/4D面白かったです。