Problem with a dictionary program....

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

"Alex Martelli" <aleaxit at> wrote in message 
news:1gku3wn.1o7mvyb1gtif84N%aleaxit at
> Ling Lee <janimal at> 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 = 

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 
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 
    print output
although that would have square brackets around the output list.  Or try an 
    print List[int(character)],
which would just not have the commas between the numbers 

More information about the Python-list mailing list