generator expression works in shell, NameError in script

Emile van Sebille emile at fenx.com
Wed Jun 17 18:27:32 EDT 2009


On 6/17/2009 3:19 PM ssc said...
> Hello,
> 
> I am trying to generate this list of tuples:
> [(0, ''), (1, 'Dr'), (2, 'Miss'), (3, 'Mr'), (4, 'Mrs'), (5, 'Ms')]
> 
> My code works fine in the Python shell:
> 
>>>> titles = ['Dr', 'Miss', 'Mr', 'Mrs', 'Ms',]
>>>> title_choices = [(0, '')] + list((titles.index(t)+1, t) for t in titles)
>>>> title_choices
> [(0, ''), (1, 'Dr'), (2, 'Miss'), (3, 'Mr'), (4, 'Mrs'), (5, 'Ms')]
> 
> The same code run in a script fails with
> NameError: global name 'titles' is not defined

You get this because titles doesn't exist in the builtin, local or 
global namespaces.

Post the code that fails.  It's hard to debug working code.  :)

Emile


> 
> Does anybody know why ? How can I fix the error ?
> 
> Thank you very much :-)
> 
> Steve




More information about the Python-list mailing list