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