nowicjusz w Pythonie, który napotkał problem z testowaniem równości. Mam listę list, states []; każdy stan zawiera x, w tym konkretnym przypadku x = 3, wartości logiczne. W moim programie generuję listę wartości logicznych, z których pierwsze trzy odpowiadają stanowi [i]. Przeszukuję listę stanów testujących dla równości (jedna z nich jest z pewnością poprawna, ponieważ wszystkie możliwe permutacje binarne są w stanach, ale równość nigdy nie jest wykrywana.Nie ma pojęcia dlaczego, tutaj jest jakiś kod, który zmodyfikowałem, aby go przetestować:Listy są takie same, ale nie są uważane za równe?
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'
w tym przypadku długość propisitons to 3. wyjście mam z tego kodu jest:
[True, True, True]
(True, True, True)
False
Zgaduję, to ma do czynienia z różnicą w nawiasach to coś wspólnego z faktem? że [0] jest listą na liście? Pozdrawiam:
'states [0]' jest krotką, a nie listą. Smaki Brace/Parens mają duże znaczenie w Pythonie. –
Tak, teraz to widzę. Użyłem wbudowanej funkcji do wypełnienia stanów i nie wiedziałem, że funkcja ta tworzy krotki, a nie listy; Nie wiedziałem nawet o krotkach. Dzięki, będę o tym pamiętać. – Bergy24