[Python]オブジェクトの属性値で配列をソートする

Pythonで配列をソートするには、list.sort()やsorted()を使用する。
配列の内容が単純な文字列や数値であれば、これらの関数をそのまま使えばよいが、配列の中身がオブジェクトで、その属性値を用いてソートすることもできる。
list.sort()やsorted()の引数 key に関数を与えればよい。この関数は引数を1つだけ取り、返り値がソートのキーとして使われる。

例:
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __repr__(self):
        return "%s(%d)" % (self.name, self.age)

persons = []
persons.append(Person('Tanaka', 40))
persons.append(Person('Yamada', 27))
persons.append(Person('Aoki', 51))
persons.append(Person('Nakamura', 36))
persons.append(Person('Suzuki', 45))

# Personオブジェクトのname属性を小文字にして比較する
print sorted(persons, key=lambda x: x.name.lower())

# Personオブジェクトのage属性で比較する
print sorted(persons, key=lambda x: x.age)

このコードの実行結果を以下に示す。
[Aoki(51), Nakamura(36), Suzuki(45), Tanaka(40), Yamada(27)]
[Yamada(27), Nakamura(36), Tanaka(40), Suzuki(45), Aoki(51)]

[Vim]正規表現に一致する行を削除する

正規表現に一致する行を削除するコマンドは、
:g/正規表現/d

逆に、一致しない行を削除するには、
:v/正規表現/d