Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #106685 > unrolled thread
| Started by | Ian Kelly <ian.g.kelly@gmail.com> |
|---|---|
| First post | 2016-04-08 08:22 -0600 |
| Last post | 2016-04-08 08:22 -0600 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: how to convert code that uses cmp to python3 Ian Kelly <ian.g.kelly@gmail.com> - 2016-04-08 08:22 -0600
| From | Ian Kelly <ian.g.kelly@gmail.com> |
|---|---|
| Date | 2016-04-08 08:22 -0600 |
| Subject | Re: how to convert code that uses cmp to python3 |
| Message-ID | <mailman.88.1460125409.2253.python-list@python.org> |
On Fri, Apr 8, 2016 at 8:08 AM, Chris Angelico <rosuav@gmail.com> wrote:
> On Fri, Apr 8, 2016 at 11:31 PM, Antoon Pardon
> <antoon.pardon@rece.vub.ac.be> wrote:
>> Doing it as follows:
>> seq1 < seq2
>> seq2 < seq1
>>
>> takes about 110 seconds.
>>
>>
>> Doing it like this:
>> delta = cmp(seq1, seq2)
>> delta < 0
>> delta > 0
>>
>> takes about 50 seconds.
>
> Why are you comparing in both directions, though? cmp() is more
> equivalent to this:
>
> seq1 == seq2
> seq1 < seq2
>
> You only need ONE comparison, and the other is presumed to be its
> opposite. When, in the Python 3 version, would you need to compare
> twice?
When there are three possible code paths depending on the result.
def search(key, node):
if node is None:
raise KeyError(key)
if key < node.key:
return search(key, node.left)
elif key == node.key:
return node
else:
return search(key, node.right)
How would you implement this with only one comparison?
Back to top | Article view | comp.lang.python
csiph-web