いまさらだけど、 http://0xcc.net/blog/archives/000043.html の Python の部分を添削。
- len(a) == 0 は、 if a: のようにリスト自体が空の時に偽になるので使わない。
- a.pop(0) は del a[0] とも書ける。どちらでも良いが、多分属性参照が無い分 del の方が高速
- a[:] = [] も同じく del a[:]
- a.remove(x) ※最初の一つしか削除されない は、すべてのxを削除したいなら a = [y for y in a if y != x]
- del(a[i]) は、 del が関数ではないので del a[i] と書く。
- Ruby の a.uniq は、ソート済みに対する操作じゃないよね? 重複を削除するだけなら set(a) でいけるけど、順序の保存が必要なら z = []; for x in a: if x not in z: z.append(x) しか思いつかないなぁ。(要素数が多いときはsetを併用) Python 2.7 や 3.1 以降なら OrderedDict を使う。ソート済みのリストが対象であれば a = [x for x,_ in itertools.groupby(a)] も可。