novizio su Python che incontra un problema di test per l'uguaglianza. Ho una lista di liste, stati []; ogni stato contiene x, in questo caso specifico x = 3, valori booleani. Nel mio programma, creo un elenco di valori booleani, i primi tre dei quali corrispondono a uno stato [i]. Eseguo il ciclo dell'elenco di stati che testano l'uguaglianza (uno di essi è sicuramente corretto poiché tutte le possibili permutazioni booleane si trovano negli stati, ma l'uguaglianza non viene mai rilevata.) No indizio del perché, ecco un codice che ho modificato per testarlo:Le liste sono uguali ma non sono considerate uguali?
temp1 = []
for boolean in aggregate:
temp1.append(boolean)
if len(temp1) == len(propositions):
break
print temp1
print states[0]
if temp1 == states[0]:
print 'True'
else:
print 'False'
in questo caso, la lunghezza del propisitons è 3. l'uscita che ricevo da questo codice è:
[True, True, True]
(True, True, True)
False
sto indovinando questo ha a che fare con la differenza tra parentesi Qualcosa a che fare con il fatto? che afferma [0] è una lista in un elenco? Cheers.
'stati [0]' è una tupla, non una lista. I sapori di parentesi graffe/parenti sono molto importanti in Python. –
Sì, lo vedo ora. Avevo usato una funzione built-in per popolare gli stati e non sapevo che quella funzione creava tuple e non liste; Non sapevo nemmeno delle tuple. Grazie, lo terrò a mente. – Bergy24