開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
昔から言われてるけど一向に変わらないですね… https://t.co/Mn0G8FpCgf
— techno_tanoC📕 (@techno_tanoC) 2017年7月19日
上を下のように書ける時代は来ないんですか… pic.twitter.com/r9FADXG2pQ
— Stringamp@8/19mxmzr (@stringamp) 2017年7月19日
こんな感じのがあれば嬉しいのかなぁと思ってとりあえずコード書いてみた。
コード(Emacs)
Python 3
#!/usr/bin/env python3 # -*- coding: utf-8 -*- class klist: def __init__(self, items): self.items = list(items) def map(self, f): return klist(__builtins__.map(f, self.items)) def sorted(self): return klist(__builtins__.sorted(self.items)) def __str__(self): return str(self.items) class Movie: def __init__(self, id): self.id = id if __name__ == '__main__': movies = klist([Movie(5), Movie(1), Movie(4), Movie(2), Movie(3)]) ids = movies.map(lambda m: m.id).sorted() print(ids)
入出力結果(Terminal, IPython)
$ ./sample.py [1, 2, 3, 4, 5] $
ただPython では、あまり深い入れ子(ネスト)は読みにくくなりよく無いって考え方に当てはめると、現状では以下のような書き方がいいとされてるのかも。
Python 3
#!/usr/bin/env python3 # -*- coding: utf-8 -*- class Movie: def __init__(self, id): self.id = id if __name__ == '__main__': movies = [Movie(5), Movie(1), Movie(4), Movie(2), Movie(3)] ids = list(map(lambda m: m.id, movies)) sorted_ids = sorted(ids) print(ids) print(sorted_ids)
入出力結果(Terminal, IPython)
$ ./sample.py [5, 1, 4, 2, 3] [1, 2, 3, 4, 5] $
0 コメント:
コメントを投稿