Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Confrontare un elemento su più liste contemporaneamente

Loriv3 (7970 points)
13 21 84
in Programmare in Python by (8.0k 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
294 views

4 Answers

R
Rebs99 (2290 points)
4 4 10
by (2.3k 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 (17470 points)
8 29 105
by (17.5k 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)
4 6 18
by (2.8k 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 (17470 points)
8 29 105
by (17.5k 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)
6 8 14
by (830 points)
Mi scuso ancora per la domanda, ma per trasformare una parola in lista, usate list(parola)?
SimoneBd96 (3030 points)
6 12 33
by (3.0k 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
by (13.7k 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)
6 12 33
by (3.0k 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 :)