Forum >> Principianti >> Problema liste

Pagina: 1

Ciao a tutti. Mi presento innanzi tutto. Sono Marco, un neofita quasi totale (nel senso che lavoro da anni nell'informatica ma non ho mai sviluppato)
Vi chiedo aiuto per un problema sulle liste

Sto seguendo un documento di Josh Cogliati e mi sono bloccato su un esercizio




La domanda è: come faccio ad eliminare un elemento da una lista (nello specifico una lista di domande) usando l'indice stesso della lista?




Se lo faccio per un lista di nomi o numeri singoli è semplice, ma se la lista è composta da stringhe complesse (tre o più parole) mi perdo :question:




Grazie






Ciao caro e benvenuto. Eliminare un elemento da un lista è semplice, che sia un singolo carattere o 100.

Facciamo un esempio:
>>> lista = ["cane", "topo", "gatto", "squalo"]
>>> lista.remove("topo")
>>> lista
['cane', 'gatto', 'squalo']
>>> lista.pop(2)
'squalo'
>>> lista
['cane', 'gatto']
Alla fine i cani ed i gatti vincono sempre.

Cya
Grazie per la risposta celere e per il benvenuto, ma il problema forse è un po' più complesso (mi sono spiegato io male). Il codice in questione è (è lungo, chiedo scusa)
Il problema è come eliminare una stinga intera in list_d usando il menù

I punti 1 e 2 sono semplici. Mi incastro sul punto 3 (ho tolto parte del codice funzionante)




L'idea sarebbe quella di passare l' indice del componente della lista (0 - 1 - 2 ecc...) per eliminare la "domanda"

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


list_d = ["Di che colore è il cielo?","Qual'è il numero perfetto?","Qual'è comando usi per vedere se unna periferica risponde in rete?","Chi mangia il topo?"]

list_r = ["Blu","3","Ping","Gatto"]

while menu_item != 9:

print("---------------------------")

print("1. Stampa la lista delle domande")

print("2. Aggiungi una domanda")

print("3. Cancella una domanda")

print("4. Modifica una domanda")

print("9. Esci")

print("---------------------------")

menu_item = int(input("inserisci la selezione: "))




#Rimuovi una domanda




elif menu_item == 3:

del_name = int(input("Quale domanda vuoi eliminare? "))

if del_name <= len.list_d():

item_number = list_d.index(del_name)

del list_ditem number

else:

print(del_name, "Domanda non trovata")


-------------------------------------------------------------------------------------------------






--- Ultima modifica di Triestin in data 2018-04-16 18:39:33 ---
Alla fine c'è un



del list_d(item_number)




ma si mangia le parentesi quadre (ho messo le tonde. Nel codice è corretto)
Forse non ho capito, ma cosa non va bene con list.pop(n) come ti ho scritto prima?

list.pop()

Remove the item at the given position in the list, and return it. If no index
is specified, a.pop() removes and returns the last item in the list. (The
square brackets around the i in the method signature denote that the parameter
is optional, not that you should type square brackets at that position.

Quando scelgono che domanda vuoi cancellare, passi il suo equivalente alla lista, stando attento perché il conteggio parte da 0 e non da 1.

Cya

P.S. Eventualmente metti un \ davanti alle parentesi quadre e tutto si risolve.
Non va nulla. Devo solo leggere giusto il codice che mi hai scritto :D



Provo e vediamo se risolvo




Grazie
if del_name < len(list_d): list_d.pop(del_name)
else: print(del_name, "Domanda non trovata") 


Pagina: 1



Esegui il login per scrivere una risposta.