Confrontare un elemento su più liste contemporaneamente

Loriv3 (7970 points)
8 20 84
asked Oct 23, 2020 in Programmare in Python by Loriv3 (7,970 points)
Sembra stupida come domanda ma mi chiedevo se fosse possibile controllare se un dato valore fosse presente all'interno di una lista scorrendo tra più liste contemporaneamente o se non esiste mi piacerebbe sapere un modo per ottimizzare la ricerca
166 views

4 Answers

R
Rebs99 (2280 points)
2 4 10
answered Oct 23, 2020 by Rebs99 (2,280 points)
Ipotizzando che la domanda sia posta in seguito ad un ragionamento in merito all'implementazione dell' HW 2, posso consigliarti di ragionare in altro modo.

Invece di fare una ricerca sugli elementi contenuti nelle diverse liste, per poter assegnare un punteggio, ragiona su una parola alla volta.
Ricorda che il gioco è ciclico. Gioca prima un giocatore, poi il secondo e così via. Se non ragioni in parallelo ti perdi per strada un pezzo importante del ragionamento per capire quando la partita si conclude.

Ps. Sfrutta una struttura dati più congeniale per assegnare punti
twgever (15190 points)
7 27 105
commented Oct 23, 2020 by twgever (15,190 points)
a dirla tutta, io ho trovato più comodo calcolare i turni e quando il gioco finisce separatamente rispetto al punteggio.
dolcetto_gommoso (2790 points)
3 6 18
answered Oct 23, 2020 by dolcetto_gommoso (2,790 points)
Non so se tra più liste è possibile, ma io ho usato la funzione any() per scorrere all'interno di una lista e cercare un valore, puoi fare delle prove ma penso sia complicato e probabilmente anche molto pesante, limitati a controllare una lista.
twgever (15190 points)
7 27 105
commented Oct 23, 2020 by twgever (15,190 points)
ma così non scorri la lista molte più volte rispetto a quello che faresti con un altro metodo? non te lo scorri tipo 20 volte?
GiovanniChiara (830 points)
4 8 14
commented Oct 23, 2020 by GiovanniChiara (830 points)
Mi scuso ancora per la domanda, ma per trasformare una parola in lista, usate list(parola)?
SimoneBd96 (3030 points)
5 11 33
commented Oct 23, 2020 by SimoneBd96 (3,030 points)
si, è corretto se tu hai 'ciao' come parola p, list(p) ottieni la seguente lista['c', 'i',' a',' o'], se invece usi split() sulla parola ottieni ['ciao']
giordano_sannino (13650 points)
7 16 81
answered Oct 23, 2020 by giordano_sannino (13,650 points)
Potrei fare un controllo a cascata, se prorpio vuoi fare questo controllo in simultanea non ne ho idea, visto che phyton legge una riga per volta. Potresti mettere tutto in una lista, o legare i controlli delll'if da un and, poi dipende da ciò xhe devi fare
SimoneBd96 (3030 points)
5 11 33
answered Oct 23, 2020 by SimoneBd96 (3,030 points)

Per quanto riguarda la ricerca nelle liste hai considerato che esiste il costrutto in ? che ti permette di verificare se un dato elemento è in una data lista "x è nella lista", per quanto riguarda l'ottimizzazione nel caso peggiore questo costrutto (con una lista di lunghezza n) fa n passi.

Credo che usando in potresti realizzare quello che dici. Buon lavoro :)