タグ

Pythonとpythonに関するYoshioriのブックマーク (121)

  • Python vs C++ vs C# @ 7bit

    前回のエントリでは多数のファイルに対して正規表現をかける処理をC++Pythonで書いき、Pythonのほうが圧倒的に速いという結果になりました。 Pythonは書き方が収斂するので大してチューニングなどはしませんが、 C++では自由度が高いため書き殴ったコードを数万回繰り返すのでは、パフォーマンスを大きく落としそうです。 今回はC++の方の実装を少し修正し、またC#版も書いてみました。 結果は以下のようになりました。(単位は秒) 実験設定生grepPython + reC++ + boost.regex + ICUC# + RegexA-18.9729.46813.25028.6875A-216.86616.40718.82863.796875A-321.85715.07827.76575.0625B-11.1511.5624.5001.796875B-23.2923.3285.812

    Yoshiori
    Yoshiori 2009/06/29
    よく見たら生のgrepよりもPythonの方が速い…
  • Python 1行で http://$HOSTNAME:8000/ を公開 - World Wide Walker

    Python 1行で http://$HOSTNAME:8000/ を公開 Posted by yoosee on Debian at 2009-04-04 09:08 JST1 $ python -m SimpleHTTPServerCommand-line Fu の Popular で見つけた。$ python -m SimpleHTTPServerと実行するだけで、実行したディレクトリを root とした http サーバが 8000 番で立ち上がる。http://$HOSTNAME:8000/ でディレクトリのファイル一覧にアクセス可能。アクセスするとアクセスログも STDERR に出力される。ちょっとしたファイルの受け渡しなどに便利かもしれない。2 ruby WEBrick でワンライナーついでにrubyで同じ事をする one liner 。webrick を使ってこんな感じか。

  • plugpyをリリースした - Doge log

    こんにちわ、あらびきプログラマーmopemopeです。 某ライブラリをpythonに移植しようとしてて、plugin周りはなんだかかライブラリ化した方が良さそうだっだので適当に作りました。 plugpy · PyPI 基実装は以下の奴です。 Pluginシステムの実装 - def __mopemope__(self, *args, **kwargs): Pluginの書き方 制限はコンストラクタに引数を持たないといかんって事ぐらいであとは自由です。 一応デフォルトでPluginクラスを継承を推奨します。 (Pluginはコンストラクタに引数を持っています) 足し算するplugin plugins/test_plugin.py from plugpy import * class TestPlugin(Plugin): def on_test(self, x, y ): return x

    plugpyをリリースした - Doge log
  • Pythonを使ってiTunesを操作する | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 昔に買ったMac MiniをiTunes再生専用マシーンにしているんだけど,普段はモニタを消しているので,再生開始するときや停止するときに,モニタをつけたりなんだりしなければならなくて面倒だと思っていた。Mac Miniはネットワークに繋がっているのだから,ネット経由でコントロールできればステキだ。iPhoneのアプリ「Remote」を使うと,WiFi経由でローカルネット上のiTunesを遠隔操作できるんだけど,しばらくすると接続が切れたりして使えない。 しょうがないので,PythonからiTunesのコントロールをできるようにしてみた。appscriptというバインディングをインスト

  • PythonでもRubyみたいに配列をメソッドチェーンでつなげたい - by edvakf in hatena

    最近は Project Euler という問題集にハマってて、とりあえず最近始めたばっかりの Python でやってみているのだけど、Python の配列操作はどうもいちいち面倒くさい。 a = [1,4,3,2] a.sort() # ← これが self を返さないのとか reversed(sorted(a)) # ← 一々戻って関数を書いたりしないといけないところとか map(lambda x:str(x), a) # ← 配列を起点にする動作なのに配列を最後に書くのとか '-'.join(a) # ← 閉口 Ruby みたいに a = [1,4,3,2] a.sort().reverse().map{|x| x.to_s}.join('-') って書けたらいいのに! というわけで BetterList.py を書いた。 gist: 90312 - GitHub sort() が破壊

    PythonでもRubyみたいに配列をメソッドチェーンでつなげたい - by edvakf in hatena
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 by chazmatazz 「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。あ、Pythonに限定してますが、他の言語でも似たようなものはあると思いますので、脳内変換をお願いします。 事前の設計はしません 「こういう処理が必要」「こういう計算しなきゃね」みたいなロジックや「要件はこうかな?」ということは事前に考えたりするけど、クラス構造とかは基的に考えないで手をつけます。そして、ある程度規模が大きくなって「あ、ちょっとこの関数大きすぎて理解しにくいなぁ」と

  • pythonでPrototype的な実装をしてみる - もちおのWEBアプリ開発日記

    pythonでprototype.js的な実装をしてみた #!/usr/bin/env python # -*- coding: utf-8 -*- import sys class Prototype: # Abstract Class def __init__(self): self.__dict__ = {} def __setattr__(self, key, value): self.__dict__[key] = value def __getattr__(self, key): return self.__dict__[key] def prototype(self, dict): for k in dict: v = dict[k] self.__setattr__(k, v) class Function: def __init__(): return None clas

    pythonでPrototype的な実装をしてみる - もちおのWEBアプリ開発日記
  • Pythonのモジュールインポートのしくみ

    【1】   インポートする時 hoge.pyというモジュールをインポートする時、 hoge.pycファイルがなければコンパイル後のキャッシュをhoge.pycとして保存するようです。 【2】   パッケージってなんなの? Pythonではフォルダに「__init__.py」があれば、そのフォルダを「パッケージ」として扱えるようになっています。 論理的なツリーを構築するためにもつかえますし、このフォルダ内に複数のモジュールを入れておき、あたかも巨大なひとつのモジュールのように振舞わせることが出来ます。

  • dateutil に感動した - Twisted Mind

    >>> from datetime import datetime >>> from dateutil.relativedelta import relativedelta >>> now = datetime.now() datetime.datetime(2009, 4, 22, 15, 1, 2, 502637) >>> now + relativedelta(days=+1) datetime.datetime(2009, 4, 23, 15, 1, 2, 502637) >>> now + relativedelta(days=+0.5) datetime.datetime(2009, 4, 23, 3, 1, 2, 502637) >>> now + relativedelta(days=+0.3) datetime.datetime(2009, 4, 22, 22, 13,

    dateutil に感動した - Twisted Mind
  • 翻訳 - Python製のソーシャルブックマークエンジンRedditはなぜLispからPythonを使うようになったのか — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー RedditというのはUSの技術者を中心に人気のあるソーシャルニュースサイトで,Pythonを使って書かれている(バックエンドはと言うとPostgreSQL(Slony))。もともとLispで書かれていて,web.pyというフレームワークを生み出したりもしている。まあ一言で言うとRedditを作っている連中は面白い。Redditのコードが公開されていて,だれでもクローンを作ることができる,とかね。2,3歩先を行っている。 PyCon 2009のキーノートでRedditのFounderたちがキーノートスピーチをしたんだけど,その時の質問「なぜRedditがLispからPythonに移行し

  • 第7回 関数アノテーションでスマートにプラスアルファの実現 | gihyo.jp

    関数アノテーションとは 関数アノテーションとは関数の引数と戻り値に付加情報をつける機能です。PEP 3107 -- Function Annotationsで定義されていて、Python 2.6へbackportされていないので、利用するにはPython 3.0以降が必要になります。 まずは、インタラクティブシェルで関数アノテーションの例を見てみましょう。 >>> def foo(a: "a argument", b: int) -> ["return", "value"]: ... return a+b ... >>> help(foo) Help on function foo in module __main__: foo(a: 'a argument', b: int) -> ['return', 'value'] >>> foo.__annotations__ {'a': 'a

    第7回 関数アノテーションでスマートにプラスアルファの実現 | gihyo.jp
  • Bruce: ReStructuredText Presentations, now in beta

    Links Out Python people Python-URL Roundup pyglet amk xander anthony toby Archive 2013-Aug 2013-Jul 2013-Jun 2013-May 2013-Apr 2013-Mar 2013-Feb 2013-Jan 2012-Dec 2012-Nov 2012-Oct 2012-Sep 2012-Aug 2012-Jul 2012-Jun 2012-May 2012-Apr 2012-Mar 2012-Feb 2012-Jan 2011-Dec 2011-Nov 2011-Oct 2011-Sep 2011-Aug 2011-Jul 2011-Jun 2011-May 2011-Apr 2011-Mar 2011-Feb 2011-Jan 2010-Dec 2010-Nov 2010-Oct 201

  • 第6回 Pythonicな文字列フォーマットforamat()メソッド | gihyo.jp

    文字列操作は、Pythonのようなスクリプト言語の「主戦場」と言えます。Web開発に限らず、バイオインフォマティクスなど幅広い分野で盛んに活用される機能です。中でも文字列のフォーマッティングは、よく使われる機能のひとつです。 Python 3.0では、従来からあった%演算子や、Templateクラスを使った文字列フォーマットに加えて、Pythonic(Python的)でより迷いの少ない文字列フォーマットの仕組みが追加されました。文字列型にformat()というメソッドが追加されたのです。この記事では、format()メソッドの活用方法や利点について解説します。 format()メソッド Python 3.0では、文字列オブジェクトにformat()というメソッドが追加されました。このメソッドを使うと、テンプレート文字列を元にした文字列のフォーマッティングが可能です。なお、このメソッドは2.

    第6回 Pythonicな文字列フォーマットforamat()メソッド | gihyo.jp
  • 自然言語処理は Python がいちばん - 武蔵野日記

    現在大学1年生の人で3年後には NAIST に (というか松研に) 来たいという人から「どんなプログラミング言語やっておくといいですか」と質問されたりするのだが、なかなか答えるのは難しい。自分は PerlPython がメインでときどき C++/C# を使ったりするのだが、どれが一番いいかはなんとも言えないので、自然言語処理以外に転向する可能性も考えると、C とか C++ とか Java とか(授業でそちらをやるのであれば)を最初の武器に選んだ方がいいのでは、と思ってはいる。 そんなこんなで最近 Hal Daume III (機械学習を用いた自然言語処理では非常に有名な人) のブログで Language of Choice というタイムリーなエントリーが出ていたので、紹介すると、「それなりに大きな自然言語処理のプロジェクトでどのプログラミング言語を使うのか」というアンケート結果が出

    自然言語処理は Python がいちばん - 武蔵野日記
  • はてなブログ | 無料ブログを作成しよう

    思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。

    はてなブログ | 無料ブログを作成しよう
  • 3.x系の移行タイミング - Doge log

    まあなんか色々言われてるようですが。 結構うわっつらな情報もあったりなかったりするので書いてみるか。 何が問題なのか? 3.x系では後方互換がないのでほとんど既存のコードが動かなくなる。 (僕の経験上100%動かない) 他にもLinuxだとpythonで書かれてるツールがたくさんあるのだが、これが 全部動かなくなる。 (これが大きい) もうひとつ言うとメンテナの負担が増えるという点がある。 処理系、あるいはパッケージのメンテナは2.x、3.x系とふたつのバージョン をメンテナンスしていくことになる。 勿論、これは2.x系のみで動くということにすればいいのかも知れない。 でも周りが黙ってないので対応せざる得ないだろう。 移行の問題 移行、移行と言っても具体的に何をすればいいのか?って話だけど。 まあ書き直せばいいってだけなんだけどね。 pythonの場合は移行ツール(2to3)が提供される。

    3.x系の移行タイミング - Doge log
  • Python 3.0がここ数年は初心者に非推奨なたった一つの理由 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    2012年9月追記 記事執筆当時から比べると,主に著名なパッケージやモジュールのPython 3対応が進んできており,そろそろPython 3への移行を考えてもよい頃かもしれませんね:-)。 ちょっと宣伝。Pythonの最新版に対応した入門書「みんなのPython 第三版」,発売中です:-)。 2008年のリリース当時,Python 3.0は完全に普及するまで数年かかるだろうと言われていて,僕も実際に仕事で3.x系をバリバリ使うようになるのは何年か先になるだろうと思っている。 最も大きな理由。それはCで書かれたエクステンションの3.0対応がけっこう大変だから。 エクステンション開発者を悩ませるのは,組み込み型の変更だろう。このへんに書かれていることを読むと分かるけど,3.0では文字列型,数値型のC構造体の名前が変わってしまうのだ。Cのソースコードでは,構造体を利用している部分を全部見て,書

  • Free Coding PNG Images with Transparent Backgrounds - FastPNG.com

  • yolkとpipは早いとこ合流して欲しいという話 - Doge log

    最近pipが少しづつ認知度があがってきてるんだけど、まあ貧弱 or 弱貧だよね。 だってsearchできないじゃんとかまあいろいろある。 なのでyolkを使うんだけどさあ。 yolkはpackage情報を色々を出力してくれるツール。 Error 404: File Not Found | Assembla まあそこに書いてあるとおりなわけで。 yolk -S name=xxxx yolk -S description=xxxx とかで名前、詳細内からヒットするパッケージを見つけ出す事もできる。 また yolk -U でupdate可能なパッケージも出力してくれる。便利! (時間かかるけどね) でもyolk自身から直でインスコとかできないっぽい。 download linkとかは取れるっぽいけど。なんだかなあ。 なんでこいつらバラバラに作るんだろうか。 一緒になってくんないかなあ、ホント。

    yolkとpipは早いとこ合流して欲しいという話 - Doge log
  • Python2.6新機能 - /* Grid Thinking */

    Python 2.6(Final)が正式リリースされました。 概要: 主にPython3に近づいていくリリースです。600個以上のBUGFIXが行った。 ・future_builtinsモジュール: このモジュールはPython 3で動作が変る2.x関数に関して集まったモジュールです。 Python3と汎用性を保ちたいなら、このモジュールをimportするべきです。 例: from future_builtins import map, filter ... code using Python 3-style map and filter ... Python3のprint関数も既にbuiltinsに入れたが、下記をimportしないと3の動作はしません。 from __future__ import print_function ・-3警告:Python3からサポートしない関数に対して、

    Python2.6新機能 - /* Grid Thinking */