Dictionaly型から特定の値を取り出しlist型に入れる


pythonのテクニック(?)的なものを教わったのでメモです。

Dictionaly型から、あるキーの値を取り出して配列に取り出す方法について
特になにも考えずにforで回して取り出してました。

例えば、idとnameからなるDictionalyからnameを取り出して配列にする場合は以下のようにしていました。

# Dictionaly定義
fruits_list = [ 
    {'id':1, 'name':'apple'},
    {'id':2, 'name':'banana'},
    {'id':3, 'name':'cherry'},
]

# Dictionalyからlistに取り出し
name_list = []
for fruits in fruits_list:
    name_list.append(fruits.get('name'))

# 出力
# ['apple', 'banana', 'cherry']
print(name_list)

しかし、この取り出し処理は1行で書けるようです。
修正後、以下のようになりました。

# Dictionaly定義
fruits_list = [ 
    {'id':1, 'name':'apple'},
    {'id':2, 'name':'banana'},
    {'id':3, 'name':'cherry'},
]

# Dictionalyからlistに取り出し
name_list = [fruits.get('name') for fruits in fruits_list]

# 出力
# ['apple', 'banana', 'cherry']
print(name_list)

スマートですね!