Jestem trochę zdezorientowany pytonem w operatorze dla zestawów.Zestaw operatorów "w" Pythona
Jeśli mam zestaw w pythonach i niektórych instancjach b, czy to prawda, że "b in s" oznacza "czy jest jakiś element xw taki, że b == x jest prawdziwe"?
Jestem trochę zdezorientowany pytonem w operatorze dla zestawów.Zestaw operatorów "w" Pythona
Jeśli mam zestaw w pythonach i niektórych instancjach b, czy to prawda, że "b in s" oznacza "czy jest jakiś element xw taki, że b == x jest prawdziwe"?
Tak, ale również oznacza hash(b) == hash(x)
, więc równość pozycji nie wystarczy, aby uczynić je tak samo.
Tak. Oznacza to, że dany element jest w zbiorze.
Po prostu jasne. przez "jest w zestawie" masz na myśli "a == b", a nie "a jest b", prawda? – Dejas
Zgadza się. Można spróbować go w tłumacza tak:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
Fyi, 'sets' jest przestarzałe. 'set()' jest wbudowane od dłuższego czasu. – ThiefMaster
Och, oczywiście. Przepraszam :) Zmieniam moją próbkę ... –
To nie jest bardzo dobry test, ponieważ stałe ciągów znaków są często internowane (spróbuj 'a = 'a'; b = 'a'; a is b'). Próbowałem go z 'a = (1, 2, 3); b = (1, 2, 3); a == b; hash (a) == hash (b); a oznacza b; a w zestawie ([b]) 'zamiast tego. – Philipp
Strings, chociaż nie są one set
typy, posiada cenne in
mienia podczas walidacji w skryptach:
yn = input("Are you sure you want to do this? ")
if yn in "yes":
#accepts 'y' OR 'e' OR 's' OR 'ye' OR 'es' OR 'yes'
return True
return False
Mam nadzieję, że to pomoże Ci lepiej zrozumieć użycie in
w tym przykładzie.
To nie jest zestaw. Nie są też łańcuchy zmienne. –
Nie wiem, o czym myślałem ... masz rację. – Droogans
'... lub 'e' lub 'es' lub 's''. Zastanów się, jak usunąć tę bezsensownie niewłaściwą odpowiedź. – Quuxplusone
Tak to może oznaczać, lub może być prostym iteratorem. Na przykład: przykład jako iterator:
a=set(['1','2','3'])
for x in a:
print ('This set contains the value ' + x)
Podobnie jak czeku:
a=set('ILovePython')
if 'I' in a:
print ('There is an "I" in here')
edycja: edytowanej obejmuje zestawy zamiast list i ciągi
Co to ma wspólnego z zestawami? –
well Przypuszczam, że listę lub nawet ciąg można uznać za mające podobne właściwości do zestawu. Są zbiorem elementów. –
Nie, zestawy mają dodatkowy warunek sprawdzania przechowalności, którego nie zawierają sekwencje. –
jesteś matematykiem? Opisywanie prostych rzeczy w zbyt skomplikowany sposób ..;) – ThiefMaster
Informatyk. Jestem trochę zdezorientowany, ponieważ dokumentacja mówi "Test x dla członkostwa w s." Dla mnie może to oznaczać "instancję x zawartą w s" lub "instancja istnieje w s, która ma taką samą wartość jak x". Nie wiem, czy to jest porównanie tożsamości, czy równości. – Dejas
@Dejas: Ponieważ wiesz, że Python ma dwóch operatorów Porównanie Równości i Porównanie tożsamości, powinieneś być w stanie skonstruować eksperyment, który potwierdzi każdy z nich. Pomoże Ci, jeśli opublikujesz ten eksperyment. –