define 'in' operator on lists

..:: sjf ::.. somebody at unknown.org
Mon Oct 11 08:01:19 EDT 2004


pewnego dnia niejaki(a) Bengt Richter wstukal(a) byl(a) co nastepuje...:
> On Mon, 11 Oct 2004 12:51:57 +0200, "..:: sjf ::.." <somebody at unknown.org> wrote:
> 
> 
>>pewnego dnia niejaki(a) Duncan Booth wstukal(a) byl(a) co nastepuje...:
>>
>>>..:: sjf ::.. wrote:
>>>
>>>
>>>
>>>>I want to define 'in' operator (or any "magic" function) on list which 
>>>>returns True value if all of list (i.e. _list) elements appears in other 
>>>>list (i.e. L) in the same order and False otherwise. 
>>>
>>>
>>>How about:
>>>
>>>
>>>
>>>>>>def containedinsequence(short, long):
>>>
>>>	ilong = iter(long)
>>>	for s in short:
>>>	    for l in ilong:
>>>		if s==l:
>>>		    break
>>>	    else:
>>>		return False # ran out of long list
>>>	return True
>>>
>>>
>>>
>>>>>>L = [1, 2, 3, 4, 5, 6]
>>>>>>containedinsequence([3, 4, 6], L)
>>>
>>OK, this is nearly what I am expecting, but I want if
>>containedsequence([3, 4, 5], L) returns True, but
>>containedsequence([3, 4, 6], L) returns False
>>because that sequence not exist in longlist exactly
>>
> 
> Not very tested (just what you see ;-)
> 
It seems it works! Thanks very much!

-- 
.:: sjf ::..
"Linux is like Wigwam. No gates, no windows... Apache inside ;-)"



More information about the Python-list mailing list