[Tutor] list.index() question

Joel Goldstick joel.goldstick at gmail.com
Thu Dec 8 23:11:59 CET 2011


On Thu, Dec 8, 2011 at 5:03 PM, Steven D'Aprano <steve at pearwood.info> wrote:

> Robert Berman wrote:
>
>> Hi,
>>
>> Assuming a list similar to this: l1=[['a',1],['b',2],['c',3]] and I want
>> to get the index of 'c'.
>>
>
> You will need to explain what you mean by "the index of 'c'".
>
> Do you mean 0, because 'c' is in position 0 of the sub-list ['c', 3]?
>
> Or do you mean 2, because 'c' is in the sub-list at position 2?
>
> What happens if there is a sub-list ['d', 'c']? Should that also count?
> What about sub-sub-lists, should they be checked too?
>
> Here is a version which checks each sub-list in turn, and returns the
> index of any 'c' it finds of the first such sub-list.
>
> def inner_find(list_of_lists):
>    for sublist in list_of_lists:
>        try:
>            return sublist.index('c')
>        except ValueError:
>            pass  # go to the next one
>    # If not found at all:
>    raise ValueError('not found')
>
>
> Here's a version which finds the index of the first sub-list that begins
> with 'c' as the zeroth element:
>
> def match_sublist(list_of_lists):
>    for i, sublist in enumerate(list_of_lists):
>        if sublist and sublist[0] == 'c':
>            return i
>    raise ValueError('not found')
>
>
>
>
> Other variations on these two techniques are left for you to experiment
> with.
>
>
>
> --
> Steven
>
> ______________________________**_________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/**mailman/listinfo/tutor<http://mail.python.org/mailman/listinfo/tutor>
>

l1=[['a',1],['b',2],['c',3]]

>>> r = [s for s in l1 if s[0] == 'c']
>>> r
[['c', 3]]
>

This doesn't get you all the way, but maybe its a start.  If you had more
than one sublist like ['c', 8] is would include that too
-- 
Joel Goldstick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20111208/f6081334/attachment.html>


More information about the Tutor mailing list