En Mon, 09 Mar 2009 23:18:50 -0200, Daniel Dalton <d.dal...@iinet.net.au> escribió:

I'm writing a program where I search a variable (path), and see if it
contains the whole string of variable name
so:
if name in path:
  ....
else:
  ....

One question about this, how can I make it do exactly what it's doing
now, except ignore case? eg. if I do this:
i="A"
j="ab"
i in j
should return true... How do I do this?

Short answer:

if i.upper() in j.upper(): ...

Long answer: why upper()? why not lower()? Should use Unicode, casefold() (inexistent), and canonical decomposition. See section 3.13 in the Unicode specification.
Anyway, this may be "good enough":

from unicodedata import normalize
def caseinsensitivecmp(a,b):
  return cmp(normalize("NFKD", a).upper(), normalize("NFKD", b).upper())

Apply the same transformation for the "in" operator that you're interested in.

--
Gabriel Genellina

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

Reply via email to