タグ

PythonとPython 3.0 Hacksに関するTensorのブックマーク (5)

  • 第8回 リスト処理と内包表記 | gihyo.jp

    リスト処理関数の仕様変更 Python3.0では、リスト処理に関わる多くの関数/メソッドに変更が加えられました。また、リスト処理を行う際に非常に便利なリスト内包表記にも追加・変更が加えられています。今回は、それらの関数/メソッド/構文について書きたいと思います。 iteratorへの変更 まずは、リスト1のソースをPython2とPython3で実行してみてください。 リスト1 リスト処理関数 print(range(10)) # range print(map((2).__mul__, range(10))) # map print(filter(lambda x: x % 2, range(10))) # filter print(zip(range(5), range(5, 10))) # zip d = dict(aa=100, bb=300) print(d.keys()) #

    第8回 リスト処理と内包表記 | gihyo.jp
  • 第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
  • 第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
  • 第5回 multiprocessingモジュールによるプロセス間通信 | gihyo.jp

    multiprocessingモジュール multiprocessingモジュールは、Python2系列では2.6以降、3系列では3.0以降に標準となったモジュールです。このモジュールはthreadingモジュールに似たAPIでプロセス間通信などの機能を提供します。このモジュールにより、GILの問題を回避することができ、複数のCPUCPUコアの性能を生かすことができます。また、このモジュールはローカルのみならず、リモートでのプロセス間通信も行うことが可能で、簡単に分散処理などを実装することができます。 まず、GIL(Global Interpreter Lock)とはPythonのインタプリタ上で一度に1つのスレッドだけが動作するよう保証するためのロックです。このロックによって、同時に同じメモリにアクセスするスレッドが存在しないことを保証します。 しかしながら、このロックによって、一度に

    第5回 multiprocessingモジュールによるプロセス間通信 | gihyo.jp
  • 第4回 「俺様プチencoding」を実装して理解するPython3.0のioとcodec、encodingの機構 | gihyo.jp

    2点ほど補足。 Pythonのstr/bytes/unicodeはimmutableで、実装効率の上でmutableなbytesが必要になった場合はbytesarrayを使用します。 reprはなんらかobjectを、そのobjectを生成させるcode片を印刷させたいときに使う関数です。この表ではそれぞれのversionのpythonで該当のobjectに対してreprを呼んだときの出力のformatです。2.xでは''がPyStringであったが、3.0では''はPyUnicodeを印刷するために使われています。 codecを拡張して「俺様プチencoding」 記事の終わりに今回実装するencodingのソースコードへのリンクを用意してあります。ここではお昼ごはんをべながらでも読めるように「sourceにinline」な形式で実装を見ていきます。 import codecs 普段、

    第4回 「俺様プチencoding」を実装して理解するPython3.0のioとcodec、encodingの機構 | gihyo.jp
  • 1