python

標準ライブラリoperatorを使おう

sortの時によく使うkeyオプション。 あれをlambda式使って、 for k, v in sorted(dic.items(), key=lambda x: x[1]): ... とか書いていると遅いので、operatorを使いましょうという話。 import operator for k, v in sorted(dic.items(), key=operator.itemg…

組み込み関数idは信用できない?

2012-01-22 追記下記現象の説明がしてありました。 http://d.hatena.ne.jp/atsuoishimoto/20110426/1303772157どうやらinstance methodというかbound methodは、束縛されるたびに新しくオブジェクトを 生成しているので、id(a.imtd1) == id(a.imtd2)は、 1. …

組み込み関数idは信用できない?

ある日、id関数で遊んでいたら奇妙な現象を発見した。 Python2.7の日本語ドキュメントの言語リファレンス > データモデルから引用すると、 オブジェクトが一度生成されると、そのオブジェクトの アイデンティティ値 は決して変化することがありません; アイ…

大きい二つのリストをマージする

たまに、二つのソート済みリストを大きい一つのソート済みリストにしたいときがある。具体的にはこんな状況: >>> a = [1, 3, 6, 8, 12] >>> b = [2, 4, 5, 9, 10] >>> sorted(a + b) [1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 2つのリストaとbが比較的小さいリス…

valueでsortされたdictが欲しい

という話。カウントしつつリアルタイムで現在のヒストグラムを確認したいなーと思った。こういうときは普通パフォーマンスが問題になるから自分でデータ構造を書くんだろうけど。。。 とりあえずbuilt-in、pure pythonで実現するもっともしょぼい方法でやっ…