use of index (beginner's question)

Rhodri James rhodri at wildebst.demon.co.uk
Thu Apr 28 17:05:21 EDT 2011


On Thu, 28 Apr 2011 01:49:33 +0100, Chris Angelico <rosuav at gmail.com>
wrote:

> On Thu, Apr 28, 2011 at 10:42 AM, Rusty Scalf <iai-gis at sonic.net> wrote:
>> list1 = ['pig', 'horse', 'moose']
>> list2 =  ['62327', '49123', '79115']
>> n = 2
>> s2 = "list" + `n`
>> a = s2[list1.index('horse')]
>> print a
>
> s2 is a string with the value "list2"; this is not the same as the
> variable list2. You could use eval to convert it, but you'd do better
> to have a list of lists:
>
> lists = [
>  ['pig', 'horse', 'moose']
>  ['62327', '49123', '79115']
> ]
>
> Then you could use:
> n = 2
> a = lists[n][list1.index('horse')]

*cough* I think you mean

n = 1
a = lists[n][list[0].index('horse')]

The alternative would be to have a dictionary of lists:

lists = {
     "list1": ['pig', 'horse', 'moose'],
     "list2": ['62327', '49123', '79115']
}

n = 2
s2 = "list" + str(n)
a = lists[s2][lists["list1"].index('horse')]

Both of these can be made less ugly if the list you want to index into
isn't one of the lists you might want to look up, but that's just a detail.

-- 
Rhodri James *-* Wildebeest Herder to the Masses



More information about the Python-list mailing list