Forum >> Principianti >> Creazione automatica di liste

Pagina: 1

Ciao a tutti,

mi chiamo Lorenzo, sono nuovo del forum e nuovissimo di Python.
Volevo chiedervi se è possibile, data una lista

lista = [a, b, c, d, e]

creare automaticamente delle liste che abbiano come nome gli elementi della lista. Tale che:

a = [ ]
b = [ ]
ecc.

E' possibile fare la stessa cosa con gli oggetti di una classe? Ovvero creare nuovi oggetti che abbiano come nome elementi ad esempio presi da una lista?

Lorenzo
Ciao a tutti,
mi chiamo Lorenzo, sono nuovo del forum e nuovissimo di Python.
Ciao Lorenzo, ben atterrato qui.

Volevo chiedervi se è possibile, data una lista

lista = [a, b, c, d, e]

creare automaticamente delle liste che abbiano come nome gli elementi della lista. Tale che:

a = [ ]
b = [ ]
ecc.

>>> lista = ['a', 'b', 'c', 'd', 'e']
>>> for nome in lista:
...     vars()[ nome ] = []
... 
>>> c
[]

E' possibile fare la stessa cosa con gli oggetti di una classe? Ovvero creare nuovi oggetti che abbiano come nome elementi ad esempio presi da una lista?

Confermo che è possibile. Il come, invece, lo lascio scoprire a te ;)




--- Ultima modifica di ㎝ in data 2017-02-04 16:40:28 ---
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Grazie cm!

dovrebbe essere così!

>>> class Lettere():
... pass
...
>>> lista = ['a', 'b', 'c', 'd', 'e']
>>> for elementi in lista:
... vars()elementi = Lettere()
:party: :party: :party: :party:
Poniamo che ho una questa situazione:

class Prova()
    pass

lista = ['a', 'b', 'c', 'a', 'd', 'e', 'b', 'b']

for whatever in lista:
    vars()whatever = Prova()
In questo modo vengono creati solamente 5 oggetti, e le 'a' e le 'b' che si ripetono vengono sovrascritte.
Come risolvere? Cioè, come posso dare un comando che dice che se l'oggetto che si chiama così già esiste allora fai questo.

Ho provato in vari modi

for whatever in lista:
    try:
        whatever
    except NameError:
        vars()whatever = Prova()
    else:
        #fai questo
oppure
for whatever in lista:
    if not isinstance(whatever, object):
        # fai questo
    else:
        vars()whatever = Prova()
Ma niente.
Come fare?

Grazie
Lorenzo


Pagina: 1



Esegui il login per scrivere una risposta.