--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

08.07
Tue
以下のようなリストの中の辞書の一部をぬいてリストにしたい

person = [\
{"name":"moratori kattun","age":19,"address":"Japan"}   ,\
{"name":"foo bar"        ,"age":25,"address":"Japan"}   ,\
{"name":"hoge fuga"      ,"age":27,"address":"Japan"}   ,\
{"name":"huga hoge"      ,"age":32,"address":"Japan"}   ,\
]


具体的には、25歳以上の人のラストネームを大文字にしたリストを作りたいとする

まぁ普通にやると

result = []
for each in person:
    if each["age"] > 25:
        result.append(each["name"].split()[1].upper())
print result


だけど、これを一行でできる内包表記ってのがあるらしい

print [each["name"].split()[1].upper() for each in person if each["age"] > 25]


こっちのが幾分簡潔なような気がする

さらに、この表記でforのネストとかもできるっぽいけど

あとあと読みずらいカオスなコードを生成する気がするので。やめといたほうがいいのかも
スポンサーサイト

comment 0 trackback 0
トラックバックURL
http://telracsmoratori.blog.fc2.com/tb.php/125-8675eecb
トラックバック
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。