Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #66218

Re: A curious bit of code...

From Peter Otten <__peter__@web.de>
Subject Re: A curious bit of code...
Date 2014-02-13 20:43 +0100
Organization None
References <4cc09129-43ee-4205-a24c-03f92b594abc@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.6864.1392320644.18130.python-list@python.org> (permalink)

Show all headers | View raw


forman.simon@gmail.com wrote:

> I ran across this and I thought there must be a better way of doing it,
> but then after further consideration I wasn't so sure.
> 
>   if key[:1] + key[-1:] == '<>': ...
> 
> 
> Some possibilities that occurred to me:
> 
>   if key.startswith('<') and key.endswith('>'): ...
> 
> and:
> 
>   if (key[:1], key[-1:]) == ('<', '>'): ...
> 
> 
> I haven't run these through a profiler yet, but it seems like the original
> might be the fastest after all?

$ python -m timeit -s 's = "<alpha>"' 's[:1]+s[-1:] == "<>"'
1000000 loops, best of 3: 0.37 usec per loop

$ python -m timeit -s 's = "<alpha>"' 's[:1] == "<" and s[-1:] == ">"'
1000000 loops, best of 3: 0.329 usec per loop

$ python -m timeit -s 's = "<alpha>"' 's.startswith("<") and 
s.endswith(">")'
1000000 loops, best of 3: 0.713 usec per loop

The first is too clever for my taste.

The second is fast and easy to understand. It might attract "improvements" 
replacing the slice with an index, but I trust you will catch that with your 
unit tests ;)

Personally, I'm willing to spend the few extra milliseconds and use the 
foolproof third.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

A curious bit of code... forman.simon@gmail.com - 2014-02-13 10:37 -0800
  Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-13 13:45 -0500
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 10:45 -0800
  Re: A curious bit of code... Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-13 19:09 +0000
  Re: A curious bit of code... Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2014-02-13 20:05 +0100
  Re: A curious bit of code... Neil Cerutti <neilc@norwich.edu> - 2014-02-13 19:17 +0000
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 11:20 -0800
    Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-13 14:28 -0500
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 11:25 -0800
  Re: A curious bit of code... Neil Cerutti <neilc@norwich.edu> - 2014-02-13 19:25 +0000
  Re: A curious bit of code... Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-13 19:32 +0000
  Re: A curious bit of code... Peter Otten <__peter__@web.de> - 2014-02-13 20:43 +0100
    Re: A curious bit of code... Marko Rauhamaa <marko@pacujo.net> - 2014-02-13 21:56 +0200
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 11:23 -0800
  Re: A curious bit of code... Neil Cerutti <neilc@norwich.edu> - 2014-02-13 19:51 +0000
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 11:59 -0800
  Re: A curious bit of code... Zachary Ware <zachary.ware+pylist@gmail.com> - 2014-02-13 13:59 -0600
  Re: A curious bit of code... Chris Angelico <rosuav@gmail.com> - 2014-02-14 07:29 +1100
  Re: A curious bit of code... Tim Chase <python.list@tim.thechases.com> - 2014-02-13 14:39 -0600
  Re: A curious bit of code... Emile van Sebille <emile@fenx.com> - 2014-02-13 12:55 -0800
    Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-13 16:24 -0500
      Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 16:23 -0800
  Re: A curious bit of code... Chris Angelico <rosuav@gmail.com> - 2014-02-14 08:01 +1100
  Re: A curious bit of code... Neil Cerutti <neilc@norwich.edu> - 2014-02-13 21:01 +0000
  Re: A curious bit of code... Peter Otten <__peter__@web.de> - 2014-02-13 22:06 +0100
  Re: A curious bit of code... Chris Angelico <rosuav@gmail.com> - 2014-02-14 08:10 +1100
  Re: A curious bit of code... Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-13 21:14 +0000
  Re: A curious bit of code... Zachary Ware <zachary.ware+pylist@gmail.com> - 2014-02-13 15:20 -0600
  Re: A curious bit of code... Zachary Ware <zachary.ware+pylist@gmail.com> - 2014-02-13 15:19 -0600
  Re: A curious bit of code... Emile van Sebille <emile@fenx.com> - 2014-02-13 13:23 -0800
  Re: A curious bit of code... Chris Angelico <rosuav@gmail.com> - 2014-02-14 08:31 +1100
    Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-13 16:38 -0500
  Re: A curious bit of code... Zachary Ware <zachary.ware+pylist@gmail.com> - 2014-02-13 15:47 -0600
  Re: A curious bit of code... Serhiy Storchaka <storchaka@gmail.com> - 2014-02-13 23:49 +0200
    Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-13 16:51 -0500
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 13:33 -0800
  Re: A curious bit of code... Chris Angelico <rosuav@gmail.com> - 2014-02-14 09:13 +1100
  Re: A curious bit of code... Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 14:26 -0800
  Re: A curious bit of code... Terry Reedy <tjreedy@udel.edu> - 2014-02-13 19:29 -0500
  Re: A curious bit of code... forman.simon@gmail.com - 2014-02-13 18:45 -0800
    Re: A curious bit of code... Ned Batchelder <ned@nedbatchelder.com> - 2014-02-13 22:26 -0500
      Re: A curious bit of code... forman.simon@gmail.com - 2014-02-14 12:04 -0800
        Re: A curious bit of code... Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-14 21:01 +0000
  Re: A curious bit of code... Dave Angel <davea@davea.name> - 2014-02-14 07:19 -0500
    Re: A curious bit of code... Roy Smith <roy@panix.com> - 2014-02-14 09:06 -0500

csiph-web