How to check if any item from a list of strings is in a big string?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Fri Jul 17 04:06:22 EDT 2009


On Thu, 16 Jul 2009 11:02:57 -0500, Pablo Torres N. wrote:

> On Thu, Jul 9, 2009 at 22:07, Steven
> D'Aprano<steven at remove.this.cybersource.com.au> wrote:
>> On Thu, 09 Jul 2009 18:36:05 -0700, inkhorn wrote:
>>
>>> def list_items_in_string(list_items, string):
>>>     for item in list_items:
>>>         if item in string:
>>>             return True
>>>     return False
>> ...
>>> Any ideas how to make that function look nicer? :)
>>
>> Change the names. Reverse the order of the arguments. Add a docstring.
>>
>>
> Why reverse the order of the arguments? Is there a design principle
> there?

It's just a convention. Before strings had methods, you used the string 
module, e.g.:

string.find(source, target)
=> find target in source

This became source.find(target).

In your function:

list_items_in_string(list_items, string)

"list_items" is equivalent to target, and "string" is equivalent to 
source. It's conventional to write the source first.



-- 
Steven



More information about the Python-list mailing list