On 2012/04/12 08:59 AM, Peter Otten wrote:
Christian Witts wrote:
On 2012/04/12 06:42 AM, john moore wrote:
Hello Pyhton World,
I'm new at this and was wondering how I create a number of user specified
lists?
Example:
"How many list would you like to create?"
User inputs 5
creates five lists,
list1 []
list2 []
list3 []
list4 []
list5 []
I can create one with append, but I don't know how to loop it to create
five different named list..
You can use vars() to create the variables on the fly. vars() is just a
dictionary containing the variable name as the key, and the data as the
value so you can do `vars()['list1'] = []` and it's easy enough to
create them en masse
# Set the start to 1, and add 1 to what the user inputted
# as range/xrange doesn't include the top number
for i in xrange(1, user_input + 1):
vars()['list%s' % i] = []
This will stop working once you move your code into a function:
def f():
... vars()["list1"] = ["a", "b"]
... print list1
...
f()
Traceback (most recent call last):
File "<stdin>", line 1, in<module>
File "<stdin>", line 3, in f
NameError: global name 'list1' is not defined
I recommend that you bite the bullet and use a dedicated dictionary or list
to hold your five lists from the very begining:
You could use globals() then instead of var(), although it's a
do-it-at-your-own-risk situation then if you overwrite built-ins and
other functions in the namespace. Creating your own dictionary with the
'variable name' as the key, would be the nicer solution instead.
--
Christian Witts
Python Developer
//
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor