タグ

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

  • Python の map, filter, reduce とリスト内包表記

    1. リストを操作する関数で重要なのはどれ? リスト内包表記は慣れたら使いやすい Python のリスト内包表記に出会って 4 ヶ月が経った。 「Python のリスト内包表記」を読みなおしてみると、 … 同じく数値のリストから、特定の条件に合う要素を抽出する。 print [x for x in [1,2,3,4,5] if x > 3] これまた読みにくい。 (@_@;) と書いていたけれど、今では「シンプルで読みやすく、また書きやすい」と思える。慣れとは恐ろしい。 ^^; (リスト内包表記がネストしてたりすると、すぐに理解出来ないけれど。) Ruby の Enumerable モジュールにはたくさんのメソッドが定義されている Java しか知らなかった頃、Ruby の 配列に定義されているメソッドを見て、「便利なメソッドがたくさんあるなぁ」と思った。Ruby の配列は、Enumera

    agw
    agw 2012/02/28
    なるほど > 配列をfoldして配列を返す
  • 【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2019/06/11追記: これは2012年の投稿です。なぜかはてなブックマークで拡散されていますが、内容は時代にそぐわなくなったものもあるのでご注意ください。 これ知らないプログラマって損してんなって思う汎用的なツールのコメントに寄せられたツールを分類分けしてみました。 解説は、ほぼコメントに寄せられた内容のコピペです。 URLのみの記述は公式サイト(か、ほぼ公式サイトと化しているサイト) 公式サイトとは別に、ページタイトルだけでツールを説明しきっているページへのリンクも付けておきました。類似ページが複数ある場合は、はてブのブックマー

    【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 - Qiita
  • アクセス制御の抜け穴 (Python/Ruby編) - blanket log

    ある既存クラスの private なメソッドを外から使えるかどうかという話。 他人の触れてはならないプライベートな領域に踏み入りたい! なんていう不埒な欲望が首をもたげて現れた時点で9割9分どっか不健全なわけで、すぐに首を洗って出直すか首を括って死ぬべきですが、それでも往々にしてそんな時のための抜け穴を、僕たち私たちのプログラミング言語は用意してくれていたりするようです。*1 言語としてみれば、そういった裏技が使えることが必ずしも悪なのかどうか。全くないといざというときに困る…かどうかはともかく少なくとも困るかもしれないという漠然とした不安がつきまとうということはあるかもしれない。 それにまぁ、パズル的に使うのは全然アリだと思います。むしろそっちがメイン。そういうの好きな人多いですしね。 というわけで前置きが長くなりましたが私が知ってる各言語についてまとめてみます (その言語をふつうに使っ

    アクセス制御の抜け穴 (Python/Ruby編) - blanket log
  • Python3のprintを使ってみよう! - へきょのーと

    2011 Pythonアドベントカレンダー(Python3) 24日目です! 実はPython3は...というかPython自体ほとんど触ったことがなくて... エキスパートPython読書会に2回(2章途中)参加したくらいの知識しかないのですが 急遽参加してみることにしました!大丈夫か!? はじめに 記事のネタをどうしようか考えてたところに他の参加者様の記事を見て Python3からprintが文から式に変わったというのを見つけたので print文についてもうちょっと具体的に調べてみようかなと思いました。 環境 Mac OS X Snow Leopard 10.6.8 Python 3.2 インストール sudo port install python32 調査結果 Python3での出力仕様 Python2までは print "aaa" だったのに対してPython3では print

    Python3のprintを使ってみよう! - へきょのーと
  • six

    2011 Python アドベントカレンダー のエントリです。Python 2 と Python 3 の差異を吸収するラッパ集として six というライブラリを触ってみました。 Python 3 に同梱されている 2to3 というツールは、ひとつの Python 2 のソースから、 Python 3 用のソースを自動生成します。したがって、もとの Python 2 用コードと Python 3 用コードのふたつのバージョンを持つことになります。 一方、six がやろうとしているのは、ひとつのソースコードを Python 2 と Python 3 からも呼び出せるようにすることです。提供されるのは、基的な定数や、ラッパ関数です。 文字列リテラルのフェイク Python 3 と言えば文字列です。 # coding: utf-8 print(u'うほ') Python 3 ではこれはエラーにな

  • Python3 の関数アノテーションを使って自動テストする - forest book

    先日、引数に @Nullable アノテーションが付いた引数をもつ関数をリファクタリングして、関数分割してコミットしたら、ビルドサーバーに仕掛けられた FindBugs™ - Find Bugs in Java Programs に、@Nullable が付いてるのに Null チェックしてないよと怒られました (; ;) Java のコードに慣れないため、Eclipse のお告げに従ってリファクタリングし、Eclipse がチェックできなかったものを見逃してしまったわけです。もちろん修正するのは簡単だけど、何か恥ずかしい。 ちょっと調べたら、Eclipse プラグインもあるようです *1 。Eclipse に FindBugs プラグインをインストールしてみようー。 。。。 ( ゚д゚)ハッ! 間違えた! 今日は 2011 Pythonアドベントカレンダー(Python3) を書くよ!

    Python3 の関数アノテーションを使って自動テストする - forest book
  • Python2からPython3へ

    いろんなメモです。おもにプログラミング関係。 a memorandum. most of all contents are related to programming. この記事は2011 Pythonアドベントカレンダー(Python3)8日目のエントリーです。@shimizukawaさんから指名されました、@hideaki_t/高橋です。 はじめに igo-pythonやwhooshのPython3対応を行ったときに実際に問題となった、Python2とPython3の違いとその対応方法を書きたいと思います。なお、私の経験を元にしているため、2と3の差異の一部しかカバーしていません。 私はどちらもPython2/3両対応としたため、既存のPython2対応モジュールを3にも対応させるときに参考になればと思います。 2から3の変更点についてはすでに数回触れられている上、前日の@shimi

    Python2からPython3へ
  • ある nakagami の日記

    中学生の頃に天然痘が撲滅された。 「ワクチンすごいな」 って思った。 大学で公衆衛生も勉強した。 理想を言えば、小学校で昔のように集団接種するといいと思っている。 今だと、 mRNA の、インフルエンザとコロナの混合ワクチンが作れそうらしい。 「小学校で集団予防接種を復活させます」 と言ってくれる人が国会議員に立候補したら投票すると思うけど、無理だろうな。 今、ワクチンに…続きを読む

    ある nakagami の日記
  • Who moved my SPAM? - Python3 Advent Calendar 二日目 - What is ABC?

    Python3 Advent Calendar 二日目 - What is ABC? ということで、@shomah4aさんから引き継ぎました、@jbkingです。 ABCって何だ? 三行で。 AbstractBaseClassesの略でPEP 3119に仕様があります。 組み込み関数であるisinstanceやissubclassに作用を与える紳士協定的(Pythonらしい!)フレームワークです。 動的言語に静的言語のメリットの一部を取り込んだかんじ。 論よりコード ということで、動きを見てみましょう。 % ipython3 Python 3.2.2 (default, Sep 6 2011, 16:21:14) Type "copyright", "credits" or "license" for more information. IPython 0.11 -- An enhance

    agw
    agw 2012/02/08
    良記事。
  • Python3 Advent Calendar 一日目 - Python とジェネレータ関数 - プログラマのネタ帳

    みなさんジェネレータ関数使ってますか? ジェネレータ関数便利ですよね! 無いと死んじゃいますよね! というわけで Python3 Advent Calendar 一日目を担当する [twitter:@shomah4a] です。 ジェネレータ関数って? とりあえずジェネレータ関数です。 めんどくさいのでソース def calc_fibonacci(): ''' フィボナッチ数を生成し続けるジェネレータ関数だよ! ''' yield 1 yield 1 n = 1 m = 1 while True: yield n + m o = n + m n = m m = o こんな感じで関数の途中で yield を使って値を返す関数をジェネレータ関数と呼びます。 >>> calc_fibonacci <function calc_fibonacci at 0x1ceb958> >>> a = calc

    Python3 Advent Calendar 一日目 - Python とジェネレータ関数 - プログラマのネタ帳
    agw
    agw 2012/02/08
    ジェネレータの委譲。Python3.3からの話。
  • Class (static) variables and methods

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

    Class (static) variables and methods
  • フレクトのクラウドBlog: PythonでのAmazon S3プログラミング

    ちょっとした事情があり、PythonAmazon Web Servicesを操作するプログラムを作ることになりました。PythonAWSを操作するにはbotoがよさそうです。 PythonAWSプログラミングの手始めにメジャーなサービスであるAmazon S3でbotoの使い方を学習してみました。 ■ botoについて botoはAWSの公式SDKではありませんが、以下のAWSAPIに対応したライブラリです。 Simple Storage Service (S3) SimpleQueue Service (SQS) Elastic Compute Cloud (EC2) Mechanical Turk SimpleDB CloudFront CloudWatch AutoScale Elastic Load Balancer (ELB) Virtual Private Cloud

  • 凍ったニシキヘビと凍えた番人

    言語disりが流行ってるようなので一つ Pythonをかれこれ5年ほど使っているけれど、いい加減頭にきた。 大体頭に来るような内容というのは限られていて大体は http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm に書かれている事に近い。大事なところを引用すると 当にPythonを殺し、メインのスクリプト言語となる望みを、あるいは何であれメインの言語となる望みを絶ったのは、永久凍土の問題なのだ。人々はいまだ埋め込みインタプリタにTclを使っている。どのような面から見てもTclよりPythonの方が遥かに優れているというのに——ただし永久凍土の問題を別にすれば。 これに尽きる。 よく言われるが、インデントに縛りがあるのもselfが付くのも慣れてしまえばさほど気にならないし、むしろ魅力的とも感じる。 しかし、Python当の

    凍ったニシキヘビと凍えた番人
  • Python2とPython3でHTTP POST+Cookie処理の比較 - yattのブログ

    Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 作者: 山陽平出版社/メーカー: 技術評論社発売日: 2010/04/08メディア: 単行(ソフトカバー)購入: 143人 クリック: 4,320回この商品を含むブログ (183件) を見る Python2系でurllibとurllib2に分かれていたHTTP関係のコードは、Python3でurllibモジュールに統合されました。 Pthon3でHTTP POSTをする場合にurllibをどう使えばいいのかについて、はてなにログインするスクリプトを例にして比較したいと思います。GETは簡単なんでパス。 全体的な流れとして データをURLエンコードして送信 cookieCookieProcesssorでCookieJarオブジェクトを処理 接続するとレスポンスオブジェクトが返るので

    Python2とPython3でHTTP POST+Cookie処理の比較 - yattのブログ
  • Reddit - The heart of the internet

    The official Python community for Reddit! Stay up to date with the latest news, packages, and meta information relating to the Python programming language. --- If you have questions or are new to Python use r/LearnPython

  • 「Python 2.8」案で議論 - 反対意見が大半

    Python(いわゆるCPython)は、2.7系と3系の2つのプロダクションバージョンが存在する。最新機能や2系で要望の多かった機能を取り込み、改善などを実施したものが3系で、今後は3系を採用することが推奨されている。 それに対し、2.7系はメンテナンスやバグ修正を目的としたブランチで、新機能の追加や変更などは実施されない。しかし、多くのライブラリが2系を対象としたものであることから、ライブラリを重視する場合にはこの2.7系を利用するケースが多く、Python 2.7系をデフォルトのバージョンに採用しているディストリビューションも少なくない。 こうした状況にあることから、Pythonコミュニティでは、「Python 2.8」を用意してはどうかという意見もあるようだ。3系を利用するつもりはないが、新機能を利用したいというユーザーに向け、2系のコードベースに3系の機能を取り込んでいこうという

  • Python 3系の機能を2系に導入する「Python 2.8」が議論される | スラド デベロッパー

    私もおおよそPython 3.x系へ移行済みなんですが、それでも自分の書いたスクリプトを3.xのインストールされていない環境で実行したいときもあり、3.x用→2.x用へスクリプトを書き直す羽目になってしまいます(^^;) そうしたときは、インタプリタやライブラリ側に大きく手を加えることなく、1つのスクリプトが両方で動くように対処できないものかな、と感じることも。 あまり良いやり方ではないのは承知の上ですが、C言語の#ifdefみたいに条件付きの中間言語コンパイルってのは駄目ですかね? 例えば、 #if __PYTHON_VERSION__ < 3 import SimpleHTTPServer def HTTPServer(): SimpleHTTPServer.test() #else import http.server def HTTPServer(): http.server.te

  • はてなブログ | 無料ブログを作成しよう

    初めて気がつく瞬間 子どもと一緒に過ごすようになってから、初めてべるものの反応を楽しみにしてきた。初めてのコーラとか、初めてのグミ、初めてのガリガリくんとか。明らかにおいしいものじゃなくてもいい。初めてのウニとか初めてのゴーヤとか。目を見開いて驚いたり、文字で表現し…

    はてなブログ | 無料ブログを作成しよう
  • 乱数生成が遅いのはモジュールだから仕方ないっぽい - bonlife

    京都の嵐山でお花見してきたbonlifeです。ベラシとその仲間たちよ、ありがとう! さてさて、話は急に変わりまして。モンティホール問題(ジレンマ)について扱ったこの日記を見ていたら、RubyPHPに比べてPythonが異常に遅いと指摘されていたので、ちょっと調べてみました。RubyPHPでは乱数を生成するrand()が組み込みなのに対して、Pythonでは標準モジュールでの提供なので、まぁ仕方ないんだろうな、と思いつつ調査。 >>> import random >>> import profile >>> def random_generate(num): for i in range(num): random.randint(1,3) >>> >>> >>> profile.run('random_generate(100000)') 300005 function calls in

    乱数生成が遅いのはモジュールだから仕方ないっぽい - bonlife
  • Randomクラスは遅い!? – 日曜研究室

    なんとなく関数よりクラス使った方がかっこいいよねということで、 random.randint(0, 10) とかって書けばいいところを r = random.Random() r.randint(0, 10) とかって書いちゃう場合ってあると思いますけど、上の書き方と下の書き方は等価ではないです。 とりあえずランダムな値が得られればいいやってな文脈では結果は同じと言えるんですが、クラスをインスタンス化する場合__init__の中でseedが呼ばれます。 でこのseedは、処理自体(引数ありでseedを呼んだ場合)が重いうえに、seedの元になる値を選ぶ処理(引数なしでseedを呼んだ場合)が加わるとさらに重いです。 プロファイラで調べたところ、うちの環境では、関数だけの場合と、引数なしインスタンス化+メソッドの場合では後者の方が5倍くらい遅いです。 引数有りインスタンス化+メソッドの場合で