![]() |
How do I name a list while generating numbers on the fly? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: How do I name a list while generating numbers on the fly? (/thread-22916.html) |
How do I name a list while generating numbers on the fly? - Pleiades - Dec-03-2019 I use this code and it generates numbers in the list, but I would also like it create this name along with it for the list name. This is the name I hoping for: lst1z So here is my code Thanks: composites=[] n = int(input("Enter any number : ")) positive_n = abs(n) for num in range(positive_n+1): if num > 1: for i in range(1, num,1): if (num % i) == 0: if n > 0: composites.append(num) else: composites.append(-num) break print ("\ncomposites from", int(positive_n / n), " to ", n, "\n", composites) RE: How do I name a list while generating numbers on the fly? - buran - Dec-03-2019 It's a really bad idea to construct variable names on the fly. Don't do it, just use a proper data structure if you are dealing with multiple lists RE: How do I name a list while generating numbers on the fly? - Pleiades - Dec-03-2019 (Dec-03-2019, 11:04 AM)buran Wrote: It's a really bad idea to construct variable names on the fly. Don't do it, just use a proper data structure if you are dealing with multiple listsI'm just constructing one list and I would like to know if this is possible. Or how can I just edit the current code to write a list name into it. The code does this: [1,2,3,4] However I want the code to name it too this while generating the numbers. lst1z = [1,2,3,4] RE: How do I name a list while generating numbers on the fly? - DeaD_EyE - Dec-03-2019 You could create names on the fly. globals()['my_variable'] = 42But this is not Pythonic. (ugly code) Better is to use the right data structure for it. my_dict = {} my_dict['my_list1'] = list(range(1, 11)) my_dict['my_list2'] = list(range(11, 21)) print(my_dict) RE: How do I name a list while generating numbers on the fly? - buran - Dec-03-2019 in your code the variable is composites . if you want it to be something else, use that instead, e.g. lst1z .DeaD_EyE show what I refer to as using proper data structure, but it is really worth it when there is more than one list. Otherwise just use the nice descriptive name that you want to use, just don't create it on the fly RE: How do I name a list while generating numbers on the fly? - Pleiades - Dec-03-2019 Ok this is what I received from stackexchange and then I edited it to get this far. The lst1z is enumerated but I don't have an enumerated lst1z with quotes. Can anyone edit my code. This is my desired output: lst1z = [0, '2', 1, '3', 2, '4'] composites=[] n = int(input("Enter any number : ")) positive_n = abs(n) for num in range(positive_n+1): if num > 1: for i in range(1, num,1): if (num % i) == 0: if n > 0: composites.append(num) else: composites.append(-num) break list1z = composites print("\ncomposites from {} to {} \n list1z = {}".format(int(positive_n/n), n, list1z)) final_list = list() for index, i in enumerate(list1z): final_list.append(index) final_list.append(i) listz = composites print("\ncomposites from {} to {} \n list1z = {}".format(int(positive_n/n), n, final_list)) list1z = composites print("\ncomposites from {} to {} \n list1z = {}".format(int(positive_n/n), n, ([str(i) for i in list1z]))) #print([str(i) for i in list1z]) RE: How do I name a list while generating numbers on the fly? - jefsummers - Dec-03-2019 Another thought, not necessarily a good thought, is having your code write itself. You could then create, well, anything on the fly. squares = [x*x for x in range(10)] modle = 'modle.py' with open(modle,'w') as foofile : foofile.write('class Modle() :\n') foofile.write(' def pnt(self,lstary) :\n') foofile.write(' print(lstary)\n') from modle import Modle foo = Modle() foo.pnt(squares)The main body creates a file, writes a class and method definition to it, and then imports it and runs it. Advantage to interpreted languages. |