Why does Python show the whole array?
Peter Otten
__peter__ at web.de
Wed Apr 8 06:01:35 EDT 2009
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")
1
>>> "abc".find("ab")
0
>>> "abc".find("x")
-1
Use
if test.find(item) != -1: ...
or
if item in test: ...
to make your example work.
Peter
More information about the Python-list
mailing list