Why does Python show the whole array?
marduk at letterboxes.org
Wed Apr 8 12:28:38 CEST 2009
On Wed, 2009-04-08 at 12:01 +0200, Peter Otten wrote:
> Gilles Ganault wrote:
> > I'd like to go through a list of e-mail addresses, and extract those
> > that belong to well-known ISP's. For some reason I can't figure out,
> > Python shows the whole list instead of just e-mails that match:
> > ======= script
> > test = "toto at gmail.com"
> > isp = ["gmail.com", "yahoo.com"]
> > for item in isp:
> > if test.find(item):
> > print item
> > ======= output
> > gmail.com
> > yahoo.com
> > =======
> > Any idea why I'm also getting "yahoo.com"?
> Because str.find() returns the position of the search string if found and -1
> if it is not found:
> >>> "abc".find("bc")
> >>> "abc".find("ab")
> >>> "abc".find("x")
> if test.find(item) != -1: ...
> if item in test: ...
> to make your example work.
Or you could also use the .endswith() method
More information about the Python-list