タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

PythonとdeferredとProgrammingに関するagwのブックマーク (216)

  • Pythonの技法:Huffman符号化の実装 - builder by ZDNet Japan

    前回の圧縮に関する記事では、Pythonを用いた実行時エンコードの実現方法をお見せした。稿では、もう一つの種類の圧縮方式「Huffman符号化」の実装方法をお見せする。Huffman符号化は、文字列のような小さなアイテム集合を扱う際に便利な圧縮方式だ。 Huffman符号化では多種多様なデータ構造を同時に使用するため、大学のアルゴリズムの講義ではHuffman符号化が非常に好まれている。稿では、Pythonのheapqライブラリを用いて優先順位付きキューを実装するので、もしheapqライブラリになじみがなければ以前の記事を読んで欲しい。 Huffman符号化は、次のような2つのステップで主に構成されている。 元データに含まれているアイテムをすべて含む二分木を作成する。二分木は、リストに含まれているアイテムの中で、もっとも出現回数の少ないアイテム2つを何度も繰り返し組み合わせることによっ

  • CS 11: Python track: python idioms

    Every computer language has "idioms", that is, typical ways of accomplishing given tasks. Python is no exception. Some of the idioms are not that well known, so we thought we'd collect them here. We're also adding some material on other interesting features of the python language that you might miss when reading an introductory tutorial. These items are roughly in order of their difficulty and how

  • http://wordaligned.org/articles/why-python-programmers-should-learn-python

  • __import__ - スコトプリゴニエフスク通信

    Pythonを使い始めた時、「動的にモジュールをインポートする(実行時にインポートするモジュールを決定する)にはどうすればいいんだろう」と疑問に思っていたのですが、組み込み関数の__import__を使えばできます。例えば、spam.eggモジュールを読み込みには、 module = __import__('spam.egg', globals(), locals(), []) とすればOK。ただし、こうやって読み込んだだけでは、モジュール内の名前を参照することができないので、getattr関数などを使って適宜参照する必要があると思います。例えば、spam.eggモジュールのham関数を参照するならば、次の通り。 ham = getattr(module, 'ham') ham() ここまでは、公式のライブラリ・リファレンスを読めば分かることで、僕が今までよく理解していなかったのは次の二つ

    agw
    agw 2008/02/22
    __import__の引数を解説。良エントリ。
  • Pythonの技法:ZIPアーカイブへの書き込みと追記 - builder by ZDNet Japan

    オラクルスペシャリストが語る! 多くの企業で利用されるオラクルDBの課題 アセスメントの重要性とコスト最適化 セキュリティモデルは変わった! クラウド活用、リモートワークはあたりまえ いま求められるゼロトラスト実現のために エッジからハイブリッド環境まで 考えられる全てのインフラ基盤を検証可能 Lenovoハイブリッドクラウド検証センター VMware 渡辺氏に聞く 顧客のデジタル変革のために 自らも改革を続けるヴイエムウェアの戦略 ともにDXを推進する コンテナ化されたワークロードを管理 継続的な価値を生みだす「協創」への挑戦 中小企業のひとり情シスの現実 夢か幻か、はたまた現実か? ヘルプデスク業務の週休4日制を考える VMware modern App Days特設企画 VMware Tanzuによって拓かれる未来 これからアプリケーション戦略の道しるべ 身近な改善の第一歩! ニュー

  • Pythonの技法:ZIPアーカイブを読む - builder by ZDNet Japan

    Pythonには、ライブラリに関して「batteries included」(バッテリーが付属しております)という哲学が存在することがよく知られている。これは、スクリプトを記述する際に必要な基的な処理は、その大部分が標準ライブラリ内の関数で実行可能だということを表現している。標準ライブラリはPythonの配布パッケージに含まれているため、他のライブラリを導入する必要がないのである。これはzipアーカイブの操作に関しても例外ではなく、zipfileモジュールによってその機能が提供されている。 ただし、もしzipアーカイブ格的に操作したいなら、アーカイブ内での各ファイルの配置に関する仕様をあらかじめ把握しておく必要があるだろう。このことに関して詳しく知りたい方は、PKWAREが公開している「ZIP Application Note」を参照するのがもっともよい。このアプリケーションノートに

  • conditional expression の代替 - odz buffer

    ref: Python 2.5 の新機能 なんか久々に紫藤さんのサイトを覗いたら、ちょっと面白い。 今まで、Python には三項演算子が無かったので、単に条件によって代入される値を変えるために if predicate: value = then_value else: value = else_value と書くのは冗長なので、簡潔に、 value = predicate and then_value or else_value 書くことがしばしばありました。 Python プログラマはそういう書き方を嫌うんじゃないかなぁ。そのイディオムって一般的か? しかしこの書き方には then_value が偽として認識されるものだと else_value が value に代入されるというバグが生じます。 これを回避するためには (value,) = predicate and (then_v

    conditional expression の代替 - odz buffer
  • Python 2.5 の新機能

    1. 初めに 2006 年 9 月 19 日に Python 2.5 がリリースされました。このバージョンではかなりいろいろな点が 改善され、ますます使いやすくなっています。 この文書では Python 2.5 の改善点を簡単に紹介したいと思います。 詳しく知りたい人は What's New in Python 2.5 をみてください。 2. Python 2.5 での変更点 2.1. 三項演算子 Python 2.5 から "三項演算子" が使えるようになりました。 今まで、Python には三項演算子が無かったので、単に条件によって代入される値を変えるために if predicate: value = then_value else: value = else_value と書くのは冗長なので、簡潔に、 value = predicate and then_value or else_

  • Python 早めぐり

    -c command 指定されたコマンドを実行 script python ファイル (.py) を読み込んで実行 argvs スクリプトまたはコマンドの引数 対話モードで起動するとき、環境変数 PYTHONSTARTUP で指定されたファイルを読み込みます。 よく使うモジュールを import しておくと便利です。 詳しくは チュートリアル 2.1. を見てください。 スタートアップファイルの例: 01: # PYTHONSTARTUP 02: 03: import sys, math, re, os, os.path 04: print 'sys, math, re, os, os.path has been imported.' 2. Python スクリプトの書式 Python スクリプトの書式は以下の通りです。 00: #! /usr/bin/env python 01: # -

  • Playing with Python 0

    Python高座 0. まくら 「にしきへびとのたわむれ」なんてぇタイトルにしようかとも思ったんですがね、それじゃぁあんまりだてぇんで「Python高座」てぇことにしました。 ですからこうして、ちょいと落語家っぽい喋りでいこうかと思っているわけなんで。 「おい、八つぁん」 「なんでぇ鉄つぁんか」 「それより知ってるか」 「いや、知らねぇんじゃねぇか」 「話す前っからそう言うんじゃねぇよ」 「大体お前ぇがそうやって飛び込んでくる時ぁろくな事ぁねぇんだ」 「すげぇんだよ。ぱいそん」 「ばいそんだかふれっくすだかしらねぇがおれぁそういうのからっきし駄目だから、他当たんな。隠居でも捕まえりゃいいじゃねぇか」 「いんきょはおーくしか覚える気ぁねぇんだって。まあどのみちあの年じゃ、あれ以上覚えるのは難儀だろうけど」 「で、何がすげぇんでぇ」 「お、聞いてくれるか。かぁぁ、持つべきも

  • Perl, Python, Ruby の比較

    コードの書きやすさは3つともそれほど違わないように思えます。ただ、読みやすさはダントツで Python が 優れています。Ruby はまずまずで、Perl は書き手の技量による部分が大きいのですが、 一般的には "読めない" コードになりがちです。 現在の人気を無視して、言語そのもののよしあしを考えると、 PythonRuby はほぼ互角でしょう。しかし、今のところ Python の方が、 実行速度が速く、ライブラリが豊富なので、とりあえず Python を使うことにします。 また、Python には対話モードがあるのも Lisp に慣れた人間にとってはありがたいです。 Ruby は今後の健闘に期待します。 5. おわりに 以上 Perl, Python, Ruby の比較をつれづれと書きましたがご参考になりましたでしょうか? 結論は、 Python, RubyPerl に比べ

  • https://www.unixuser.org/~euske/doc/python/python-lisp-j.html

  • ウノウラボ Unoh Labs: Pythonのテンプレートエンジン

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: Pythonのテンプレートエンジン
  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • 格子点の生成 - odz buffer

    任意次元の格子点を(大量のメモリを使うことなく)生成するコードを出来るだけ汎用的に書いてみるテスト。 Python ならかなり簡単に書ける。generator(コルーチン)万歳。 def mesh(*points): if len(points) == 1: for x in points[0]: yield [x] else: for point in mesh(*points[:-1]): for x in points[-1]: yield point + [x] if __name__ == '__main__': for point in mesh(range(10), range(10), range(10)): print point Perl ならこんな感じ?めんどい。 sub mesh_iterator { my @coords = @_; my @indices = m

    格子点の生成 - odz buffer
  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。