Как заставить heapq оценивать кучу определенного атрибута?

Во-первых, это только маленький пример; Вы уверены, что компилятор может разумно сказать вам, что не так для более сложного кода? Для любого куска кода? Могут ли все компиляторы разумно распознавать это одинаково, чтобы кусок кода C ++ мог быть гарантированно переносимым с пропущенными точками с запятой?

Во-вторых, C ++ был создан более десяти лет назад, когда вычислительные ресурсы - не то, что нужно. они сейчас. Даже сегодня сборка может занять значительное время. Точки с запятой помогают четко разграничить различные команды (для пользователя и для компилятора!) И помогают как программисту, так и компилятору понять, что происходит.

38
задан coffee 17 October 2010 в 18:06
поделиться

1 ответ

Я чувствую, что самый простой путь состоит в том, чтобы переопределить существующую cmp_lt функцию heapq модуля. Короткий пример:

import heapq

# your custom function. Here, comparing tuples a and b based on their 2nd element
def new_cmp_lt(self,a,b):
    return a[1]<b[1]

#override the existing "cmp_lt" module function with your function
heapq.cmp_lt=new_cmp_lt

#Now use everything like normally used
0
ответ дан 27 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: