dzz: Dizzy の冬 (Default)
dzz ([personal profile] dzz) wrote2007-06-21 11:42 am
Entry tags:

Давненько не брал я в руки шашек!

Лёгким движением руки ускорил чужой код на питоне примерно в 60 раз ;)))

Было:

rows = [] cols = [] for key in values.keys(): row, col = key if not col in cols: cols.append(col) if not row in rows: rows.append(row) n_rows = max(rows) n_cols = max(cols)
Стало:
n_rows = 0 n_cols = 0 for key in values.keys(): row, col = key if row > n_rows: n_rows = row if col > n_cols: n_cols = col


В общем, типическое "Кто так пишет..." :)))

[identity profile] dzz.livejournal.com 2007-06-21 09:59 am (UTC)(link)
Такое впечатление, что народ забыл простейшие алгоритмические фокусы и дядьку Кнута не читал :)

[identity profile] mike-mihalych.livejournal.com 2007-06-22 02:56 am (UTC)(link)
Его вообще мало кто читал.

[identity profile] dzz.livejournal.com 2007-06-22 05:58 am (UTC)(link)
Среди моих друзей - довольно многие читали. Хотя, конечно, читали в другие времена - ещё до эры ВизуальногоПрограммизматм :)
nine_k: A stream of colors expanding from brain (Default)

[personal profile] nine_k 2007-06-22 10:24 pm (UTC)(link)
Мало того: не думает, что именно он написал.
Вот, например, зачем в исходном варианте первый цикл, я ваще не понимаю. Это люди про zip() не знают, наверное. (Впрочем, алгоритмически лучше код от этого становится ненамного).

Кстати, можно и ещё сэкономить на построении (длинных) списков, пользуясь iterkeys().