Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 How do I name a list while generating numbers on the fly?
#1
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)
Quote
#2
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
Quote
#3
(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 lists
I'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]
Quote
#4
You could create names on the fly.
globals()['my_variable'] = 42
But 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)
My code examples are always for Python >=3.6.0
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Quote
#5
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
Quote
#6
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])
Quote
#7
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.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Generating numbers darktitan 3 173 Dec-01-2019, 06:25 PM
Last Post: darktitan
  How do I calculate a ratio from 2 numbers and return an equivalent list of about 1000 Pleiades 5 240 Nov-21-2019, 09:02 PM
Last Post: Pleiades
  Subtract 11 from entire list of quoted numbers Pleiades 1 99 Nov-14-2019, 10:26 AM
Last Post: Larz60+
  List of numbers to add Planeuge 4 230 Sep-21-2019, 10:41 PM
Last Post: Planeuge
  weird result trying to remove numbers from a list Exsul 6 279 Aug-27-2019, 05:10 AM
Last Post: perfringo
  How to count and order numbers in a list rachyioli 2 216 Aug-21-2019, 10:51 AM
Last Post: perfringo
  removing duplicate numbers from a list calonia 12 900 Jun-16-2019, 12:09 PM
Last Post: DeaD_EyE
  huge list of whole numbers Skaperen 3 409 Jun-02-2019, 10:11 PM
Last Post: Skaperen
  Print Numbers starting at 1 vertically with separator for output numbers Pleiades 3 308 May-09-2019, 12:19 PM
Last Post: Pleiades
  how to add the numbers of a list Pedroski55 2 328 Apr-07-2019, 03:11 PM
Last Post: perfringo

Forum Jump:


Users browsing this thread: 1 Guest(s)