Issue1904
Created on 2008-01-22 10:54 by gpolo, last changed 2022-04-11 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| heapq_key.py.patch | gpolo, 2008-01-22 11:09 | Adds key argument to heapq functions (C version not patched) | ||
| Messages (3) | |||
|---|---|---|---|
| msg61496 - (view) | Author: Guilherme Polo (gpolo) * | Date: 2008-01-22 10:54 | |
Wouldn't it be useful to add a "key" argument to some heapq functions ? So you could construct a heap from dict items list based on the second item of each tuple, for example. |
|||
| msg61497 - (view) | Author: Guilherme Polo (gpolo) * | Date: 2008-01-22 11:09 | |
Adding a simple patch that adds the "key" argument. To test this you need to comment lines where it tries to import the C version of heapq. |
|||
| msg64397 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2008-03-24 08:13 | |
Rejecting the key-function patch in favor of the current typical approach of heapifying tuples that link a priority level with individual records. I've been a heavy user of the module and one of its principal maintainers. To date, I've seen very little need for key- function argument. Use cases aside, there is another design issue in that the key-function approach doesn't work well with the heap functions on regular lists. Successive calls to heap functions will of necessity call the key- function multiple times for any given element. This contrasts with sort () where the whole purpose of the key function was to encapsulate the decorate-sort-undecorate pattern which was desirable because the key- function called exactly once per element. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:56:30 | admin | set | github: 46199 |
| 2013-04-27 08:17:14 | serhiy.storchaka | link | issue4424 superseder |
| 2008-03-24 08:13:40 | rhettinger | set | status: open -> closed resolution: rejected messages: + msg64397 |
| 2008-01-22 15:37:36 | gvanrossum | set | priority: low assignee: rhettinger keywords: + patch nosy: + rhettinger |
| 2008-01-22 11:09:28 | gpolo | set | files:
+ heapq_key.py.patch messages: + msg61497 |
| 2008-01-22 10:54:02 | gpolo | create | |