dictionaries

Zach Shutters zshutters at comcast.net
Fri Sep 10 17:08:52 EDT 2004


Ok, I get it thanks!

"Steven Bethard" <steven.bethard at gmail.com> wrote in message 
news:mailman.3176.1094850275.5135.python-list at python.org...
> Zach Shutters <zshutters <at> comcast.net> writes:
>>
>> def function1():
>>     print "function1"
>>
>> def function2():
>>     print "function2"
>>
>> dict = {"1":function1,"2":function2}
>> x = input ("1 or 2?")
>>
>> dict[x]()
>
> Right idea, wrong type.  From the docs at:
>
> http://docs.python.org/lib/built-in-funcs.html
>
> ] input( [prompt])
> ]
> ]      Equivalent to eval(raw_input(prompt)).
>
> This means that when you use input, it will convert the "1" typed at the
> prompt to the integer 1.  So your code should either be:
>
>>>> d = {1:function1, 2:function2}
>>>> x = input("1 or 2? ")
> 1 or 2? 1
>>>> d[x]()
> function1
>>>>
>
> or
>
>>>> d = {"1":function1, "2":function2}
>>>> x = raw_input("1 or 2? ")
> 1 or 2? 1
>>>> d[x]()
> function1
>
> You also probably shouldn't name your dictionary 'dict' because then you
> rebind the name 'dict', which is already the builtin 'dict' function.
>
> Steve
> 





More information about the Python-list mailing list