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 = "t...@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 -- http://mail.python.org/mailman/listinfo/python-list