LINQのPython実装 "linqish"の紹介
LINQは.Netだけのものじゃない!!
Pythonのモジュールに面白いものがあったので紹介します。LINQ to ObjectsのPython実装「linqish」です。
LINQのメソッドチェイン構文をほぼ完全にサポートしています。
最新バージョンは0.5.2です。インストールは
pip install http://linqish-py.googlecode.com/files/linqish-0.5.2.zip
で行けると思います(私はPyCharm使ってるのでSettingからGUIでやりました)
Python2.7.5で確認しましたが、3.3.3では使えないようです
さっき見つけたばかりで、公式ドキュメントもなかったのですが直感でFizzBuzzは書けました。楽しい!
import linqish
fizzbuzz = linqish.Query(range(0, 100)).select(lambda x: x + 1).select(
lambda x: "FizzBuzz" if x % 15 == 0 else "Fizz" if x % 3 == 0 else "Buzz" if x % 5 == 0 else x)
for i in fizzbuzz:
print i
基本はこの部分
fizzbuzz = linqish.Query(range(0, 100))
linqish.Query(データ構造)で、.NetでいうIEnumerable<T>のインスタンスが生成されます。listとtupleは確認しましたがsetでもできるのかどうかは実験してないです
これ以降は見たとおり本家LINQと何ら変わらない書き方です。わかりやすい!
おそらくコードの短さや、実行速度なんかは組み込みのリスト内包表記には敵わないとは思いますが、他言語(特にC#)を書いている人がPythonでデータ構造をいじくるのにいきなりリスト内包表記はハードルが高いと思うので、
linqishのメソッドチェインでわかりやすく操作するのもいいと思います。
本当に公式ドキュメントがないので不安なところもありますがすごく面白いプロジェクトだと思うので今後も更新が続けられることを期待しています!
Author And Source
この問題について(LINQのPython実装 "linqish"の紹介), 我々は、より多くの情報をここで見つけました https://qiita.com/lacolaco/items/0dc9a29b8c6c61d41f80著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .