タグ

pythonに関するhatz48のブックマーク (12)

  • Pythonのイテレータとジェネレータ - Qiita

    Pythonのイテレータ(iterator)とジェネレータ(generator)についてまとめてみます。 (追記2018.12.25: Python3の文法に全面的に置き換えました) イテレータ: 要素を反復して取り出すことのできるインタフェース ジェネレータ: イテレータの一種であり、1要素を取り出そうとする度に処理を行い、要素をジェネレートするタイプのもの。Pythonではyield文を使った実装を指すことが多いと思われる Python組み込みのコレクション(list, tuple, set, dictなど)はどれもイテレーション可能ですが、組み込みのコレクションを使った繰り返し処理ではあらかじめコレクションに値を入れておく必要があるため、以下のようなケースではイテレータやジェネレータを自分で実装したいというケースがあると思います。 無限に繰り返すイテレーション 要素すべてをあらかじめ

    Pythonのイテレータとジェネレータ - Qiita
  • Go vs. Python

    Go vs. Python Learning Go by comparing how you'd do it in Python Check out this blog post for the backstory and ability to comment. Or comment by filing issues on GitHub.

  • 他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー

    今日質問されて、以前Twitterで書いたのを思い出して、そして検索性が悪くて見つけ出すのに苦労した。こちらに転載しておく。詳細は気が向いたときに埋める。 オプション引数の評価タイミング Rubyではオプション引数は関数が呼ばれるたびに評価される。 def foo() print "foo!" end def bar(x=foo()) end bar #=> foo! と出力される bar #=> foo! bar #=> foo! Pythonでは関数の定義時に1回だけ評価される。 def foo(): print "foo!" def bar(x=foo()): pass #=> foo!と出力される bar() #=> 何も出力されない bar() 「引数が省略されたら今の日時」みたいな毎回評価したい場合はデフォルト値をNoneにしておいて「Noneだったら=省略されていたら」のif

    他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー
  • 自然言語処理にはやっぱりPythonがいちばん - nokunoの日記

    Quoraで「自然言語処理に適したプログラミング言語はどれか?」という質問をしたところ,やっぱりPythonが一番人気のようです.What programming language is suitable for natural language processing? - Quora理由として以下が挙げられていますNLTKがあるから正規表現ライブラリ(re)が強力だからnumpyとscipyがあるから スクレイピングにBeautifulSoupやScrape.pyが使えるから Django / Pylons / TornadoのようなWebフレームワークがあるから また,機械学習のライブラリを言語別にまとめた質問もありました.こちらもJava, Python, Rが多いですね.Which programming language has the best repository of ma

  • Google App Engine / Python 上での開発で最初から知ってればよかった、ってことをいくつか - Masatomo Nakano Blog

    ここ数ヶ月、Google App Engine/Pythonを使い、初めてちょっとしたものを作ってみているのだけど、開発初期から知っておけばよかったなー、と思うノウハウ/tips的なものをずらずらと書いてみる。 基的な環境設定は、 以前書いた まま。 0. 公式ドキュメントを良く読む 言うまでもなく、だけど、 マニュアル はもちろん、 この辺 の下の読み物も、流し読みだけでもしておいたほうがいい。 datastoreとmodel的なところ 1. key nameを使いこなす key nameは、レコードの作成時に指定できる(RDBでいう)primary keyの別名みたいなもの。primary key自体は自動的で作成されるので開発者が指定できるのはkey nameだけ。 key nameをうまく使うことで、datastoreを使いやすくすることができる。特にdatastore上で"un

  • Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

  • Python入門者に贈る16の鍵 « python練習帳

    このエントリーは、Python入門者と、Python入門予備軍の方を対象としています。 どうしてPythonやるの? Pythonって覚えやすい言語なんです。といっても、それなりに使いこなせるようになるには、数十時間程度はかかるわけです。なんとなく・・で勉強するなら、やらないほうがましです。ちゃんと、自分なりの目標を設定してから勉強しましょう。私の目標は、2011年中に、Pythonで日国内でそこそこ有名になることです。そこそこでいいです。pythonでぐぐって10番ぐらいに表示されれば満足です。それぐらい有名になったら、来年はPython仕事しつつ、他のこと勉強してると思います。 実は世界的にはPHPより人気がある Pythonは、Java、C、C++に次いで人気のある言語です。決してマイナー言語ではありません。 2011年2月のランキング GoogleAppEngineで使える ク

  • Python: 正規表現の基本 - 最長、最短マッチング - Yukun's Blog

    直前の文字、メタ文字を繰り返しマッチングさせる量指定記号である「*」「+」「?」などは、テキスト中にその繰り返しパターンがマッチする箇所が複数ある場合は、通常最後にマッチした箇所をオブジェクトに記録します。このような最長マッチングに対して、マッチング箇所が複数の場合に最初にマッチした箇所を記録する最短マッチング方法があります。 最短マッチングを行う量指定記号は最長マッチングの記号の末尾に「?」を付けるだけです。すなわち、最長の量指定が「*」「+」「?」であるのに対して、最短マッチングは「*?」「+?」「??」となります。それでは、以下のコードで確認してみましょう。 ソースコード # coding: Shift_JIS import re # 正規表現を扱うモジュールのインポート # 正規表現のチェックプリント用の関数 def PrintRegMatch(pat, txt): # 書式: r

    Python: 正規表現の基本 - 最長、最短マッチング - Yukun's Blog
  • 5. 文字列の変更

    ここまでは、静的な文字列に対して探索を行ってきました。 しかし、正規表現は、様々な方法で文字列を変更するのにも、よく使われます。 5.1. 文字列の分割 RegexObject の split() メソッドは、正規表現がマッチした全ての部分で文字列を分割し、各部分をリストで返します。 似たようなものとして string.split() があり、これは一般的な区切り記号で分割するのに使われます。 string.split() は空白文字か固定の文字列での分割のみをサポートしています。 ご想像のとおり、モジュールレベルの re.split() 関数もあります。 split(string [, maxsplit = 0] ) 正規表現にマッチした部分で、文字列を分割する。正規表現の中で、グループ取得に括弧が使われたら、グループの内容も戻り値リストに含めて返される。もし maxsplit が 0

  • 3. 正規表現を使う

    ここまでで、単純な正規表現をざっと見てきましたが、次は、どうやって Python の中で使うのかに話を進めましょう。 re モジュールは正規表現エンジンのインタフェースを提供し、正規表現をオブジェクト型にコンパイルして、マッチさせることを可能にします。 3.1. 正規表現のコンパイル 正規表現は RegexObject インスタンスにコンパイルされます。 このインスタンスは、パターン・マッチや文字列交換のような、様々な働きをするメソッドを持ちます。 >>> import re >>> p = re.compile('ab*') >>> print p <re.RegexObject instance at 80b4150> re.compile() に引数 flags を指定することで、特別な設定や文法の変更を実現するのに使われます。 使用可能な設定は後で見ていくことにして、ここでは例だけ

  • Python: コマンドライン引数の取得 – sys.argv変数

    コマンドラインで与える引数によってプログラムの挙動を変えたいという場面はよくあります。Python ではコマンドライン引数は sys モジュールの argv 属性に文字列を要素とするリストとして格納されています。そして、リストの先頭要素(sys.argv[0])はスクリプトファイル名となっています。 ソースコード # coding: Shift_JIS import sys # モジュール属性 argv を取得するため argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 # デバッグプリント print argvs print argc print if (argc != 2): # 引数が足りない場合は、その旨を表示 print 'Usage: # python %s filename' % argvs[0]

    Python: コマンドライン引数の取得 – sys.argv変数
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1