Pythonチュートリアルまとめ(その2)

Pythonチュートリアルのまとめその2です。Pythonチュートリアルで出てきた気になる機能やいいなと思った機能をまとめています。その1はこちら

リスト内包

あんまりこういう操作は他の言語にはないような気がします。リストから新しいリストをとるときに便利そう。なにかに例えるのが難しい。。たとえば、3の倍数のリストを取り出すリスト内包は、こうなる。

[x for range(1, 255) in list if x % 3 == 0]

if文の後置記法が僕には若干わかりにくいかな。二つのリストからリスト内包を作成することもできる。

[x*y for x in range(1, 4) for y in range(1, 4)]

set

ちょっと面白いデータ構造としてset(集合)というのがある。これはいわゆる集合演算をサポートしたコレクションで、和・差などをサポートしている。

a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6])
a & b

set([3, 4, 5])

a - b

set([1, 2])

ジェネレータ式

ジェネレータというのは、いわゆるイテレータを返す関数のこと。たとえば、偶数番目の文字を取り出すジェネレータを書くと、こんな感じ。

def f(data):
    for i in range(len(data) -1):
        if i % 2 == 1:
            yield data[i]

v = '1234567890'

for i in f(v):
   print i

まとめ

ようやくPythonの雰囲気がつかめてきました。Pythonは構文にせよ、型にせよ、パッケージのインポートの仕方にせよ、プログラマが明示的に記述する言語のようですね。JavaからRubyに移行しているプログラマも多いようですが、どちらかというとPythonのほうがJava屋さんには向いている気がします。これからPythonを始める方はPythonチュートリアルはおすすめですよ。てっとりばやくPythonの雰囲気をつかむのに最適な一冊です。

さて、ここまでPythonを勉強してきた訳ですが、なんでそんなことをしていたかというと「集合知プログラミング」の言語がPythonで、サンプルがよくわからなかったから。これでようやく「集合知プログラミング」が楽しめるというものです。

Pythonチュートリアル

Pythonチュートリアル