On 11/08/10 18:34, Seebs wrote:
On 2010-11-09, Ben Finney<ben+pyt...@benfinney.id.au>  wrote:
     ' '.join(x for x in target_cflags.split() if re.match('^-[DIiU]', x))

Ahh, handy.
...
The latter works only in Python with set literals (Python
2.7 or later).

I think we're stuck with backwards compatibility at least as
far as 2.4.

No, I'm not kidding. *sigh*

I feel your pain :) At least be glad you don't have to go back to 2.3 where Ben's suggested generator-syntax isn't available.

The regex is less clear for the purpose than I'd prefer. For a simple
???is it a member of this small set???, I'd find it more readable to use a
simple list of the actual strings::

     ' '.join(
         x for x in target_cflags.split()
         if x in ['-D', '-I', '-i', '-U'])

The regex is intentionally not anchored with a $, because I'm looking
for "starts with", not "is".

I suppose you could do

  ' '.join(
      x for x in target_cflags.split()
      if x[:2] in ['-D', '-I', '-i', '-U']
      )

or

  ' '.join(
      x for x in target_cflags.split()
      if x.startswith(('-D', '-I', '-i', '-U'))
      )

or even

  ' '.join(
      x for x in target_cflags.split()
      if x[:1] == '-' and x[1:2] in 'DIiU'
      )

-tkc




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to