On 2007-04-11, Terry Reedy <[EMAIL PROTECTED]> wrote:
>
> "BJrn Lindqvist" <[EMAIL PROTECTED]> wrote in message 
> news:[EMAIL PROTECTED]
> On 4/10/07, Steve Holden <[EMAIL PROTECTED]> wrote:
>> One might perversely allow extension to lists and tuples to allow
>>
>>    [3, 4] in [1, 2, 3, 4, 5, 6]
>>
>> to succeed, but that's forcing the use case beyond normal limits.
>
> I'd love to have that! There are at least one million use cases for
> finding a sequence in a sequence and implementing it yourself is
> non-trivial. Plus then both list and tuple's index methods would work
> *exactly* like string's. It would be easier to document and more
> useful. A big win.
>
>=======================
> It would be ambiguous: [3,4] in [[1,2], [3,4], [5,6]] is True now.
>
> Strings are special in that s[i] can only be a (sub)string of length 1.
> 'b' in 'abc' is True.  This makes looking for longer substrings easy.
>
> However, [2] in [1,2,3] is False.  IE, list[i] is not normally a list.  So 
> looking for sublists is different from looking for items.

Well I think this illustrates nicely what can happen if you design by
use cases.

Let us assume for a moment that finding out if one list is a sublist of
a second list gets considered something usefull enough to be included
in Python. Now the in operator can't be used for this because it
would create ambiguities. So it would become either a new operator
or a new method. But whatever the solution it would be different
from the string solution.

Now if someone would have thought about how "st1 in st2" would
generalize to other sequemce if st1 contained more than one
character they probably would have found the possible inconsistency
that could create and though about using an other way than using
the in-operator for this with strings. A way that wouldn't create
ambiguities when it was considered to be extended to other sequences.

-- 
Antoon Pardon
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to