share facebook facebook2 twitter menu hatena pocket slack

2016.12.26 MON

ショロカレ 6 日目 | 初老と Python(1)〜 宝塚トップスターが記録された dict 型のデータを特定のキーでグルーピングする 〜

川原 洋平

WRITTEN BY 川原 洋平

これは

初老丸アドベントカレンダー 6 日目の記事です。

初老丸 Advent Calendar 2016 - Qiita
集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。

qiita.com

ということで、小ネタ大ネタを交えて 12/25 まで張り切っていきましょう。

初老と Python

参考

困った、困った、こまどり姉妹

上司:あー、この dict 型のデータを使って、「クラス」毎に「名前」を並べ替えてほしい
初老:あ、はい…
渡された、dict 型データは以下のようなデータ。

top_stars = [
 {'名前': '明日海 りお', 'クラス': '花組'},
 {'名前': '花乃 まりあ', 'クラス': '花組'},
 {'名前': '珠城 りょう', 'クラス': '月組'},
 {'名前': '愛希 れいか', 'クラス': '月組'},
 {'名前': '早霧 せいな', 'クラス': '雪組'},
 {'名前': '咲妃 みゆ', 'クラス': '雪組'},
 {'名前': '紅 ゆずる', 'クラス': '星組'},
 {'名前': '綺咲 愛里', 'クラス': '星組'},
 {'名前': '朝夏 まなと', 'クラス': '宙組'},
 {'名前': '実咲 凜音', 'クラス': '宙組'},
]

どうやら、上司は宝塚のファンらしい。

宝塚歌劇公式ホームページ
宝塚歌劇の公演情報、宝塚大劇場・東京宝塚劇場に関する情報、花組,月組,雪組,星組,宙組,専科やスター情報をご紹介します。

kageki.hankyu.co.jp

※各スターのお名前は上記のサイトより拝借いたしました。この場を借りてお礼を申し上げます。

itertools.groupby

Python には標準で itertools.groupby というモジュールが提供されているので、これを使うことで瞬殺。

# -*- coding: utf-8 -*-

import itertools
from operator import itemgetter

top_stars = [
 {'名前': '明日海 りお', 'クラス': '花組'},
 {'名前': '花乃 まりあ', 'クラス': '花組'},
 {'名前': '珠城 りょう', 'クラス': '月組'},
 {'名前': '愛希 れいか', 'クラス': '月組'},
 {'名前': '早霧 せいな', 'クラス': '雪組'},
 {'名前': '咲妃 みゆ', 'クラス': '雪組'},
 {'名前': '紅 ゆずる', 'クラス': '星組'},
 {'名前': '綺咲 愛里', 'クラス': '星組'},
 {'名前': '朝夏 まなと', 'クラス': '宙組'},
 {'名前': '実咲 凜音', 'クラス': '宙組'},
]

top_stars = sorted(top_stars, key=itemgetter('クラス'))
for key, value in itertools.groupby(top_stars, key=itemgetter('クラス')):
    print '■ ' + key
    for i in value:
        print i.get('名前')

トップスター達を上司の報告

初老:上司さん、以下のような感じでいいすかねー。

$ python test.py
■ 宙組
朝夏 まなと
実咲 凜音
■ 星組
紅 ゆずる
綺咲 愛里
■ 月組
珠城 りょう
愛希 れいか
■ 花組
明日海 りお
花乃 まりあ
■ 雪組
早霧 せいな
咲妃 みゆ

上司:うむ。

以上

メモでした。

元記事はこちら

ショロカレ 6 日目 | 初老と Python(1)〜 宝塚トップスターが記録された dict 型のデータを特定のキーでグルーピングする 〜