Problem with a dictionary program....

Dan Perl danperl at rogers.com
Tue Sep 28 18:21:44 CEST 2004


"Alex Martelli" <aleaxit at yahoo.com> wrote in message 
news:1gku3wn.1o7mvyb1gtif84N%aleaxit at yahoo.com...
> Ling Lee <janimal at mail.trillegaarden.dk> wrote:
>   ...
>> List =
>> {1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9
>> :"nine"}
>
> You're missing 0, so an input such as 103 would give an error even if
> all the rest of your code was correct.

Here's another idea: use a (real) list instead of a dictionary:
List = 
["zero","one","two","three","four","five","six","seven","eight","nine"]

Then you have to convert the 'character' variable with int(character) before 
indexing in List.  Now, this would not help you in learning dictionaries, 
but it must be a good lesson for something.  ;-)

>> output = []
>> for character in indput:
>>   output.append(List[character])
>>   print ', '.join(output)
>
> This will print N times when you have N digits... outdent the print
> statement so it's executed after the 'for' and not inside it.

That print statement is actually wrong in many ways.  It was probably meant 
to be something like
    print ','.join(List[int(character)])    # List[int(character)], not 
output
but even that would start with ',' and it would be on multiple lines 
(probably not your intention).  Alex is right.  You're better off with an 
unindented
    print output
although that would have square brackets around the output list.  Or try an 
indented
    print List[int(character)],
which would just not have the commas between the numbers 





More information about the Python-list mailing list