W Pythonie mogę to wykorzystać, aby sprawdzić, czy element na liście a
:Metody równoważne rubinowi "jeśli w liście" w python?
>>> a = range(10)
>>> 5 in a
True
>>> 16 in a
False
Jak można to zrobić w Ruby?
W Pythonie mogę to wykorzystać, aby sprawdzić, czy element na liście a
:Metody równoważne rubinowi "jeśli w liście" w python?
>>> a = range(10)
>>> 5 in a
True
>>> 16 in a
False
Jak można to zrobić w Ruby?
Zastosowanie metody include?()
:
(1..10).include?(5) #=>true
(1..10).include?(16) #=>false
EDIT: (1..10)
jest Range w Ruby, w przypadku, gdy chcesz tablicy (lista):
(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]
A więc jest to podobne do metod index() zwracających zero (false) lub index (true)? – noomz
Indeks działa tylko w Array, ale nie w Range. ! (1..10) .to_a.index (5) .nil? jest równy (1..10). include? (5). Oczywiście, to drugie jest lepsze. – pierrotlefou
zakres ten sposób === , który sprawdza, czy argument jest częścią zakresu.
go używać tak:
(1..10) === 5 #=> true
(1..10) === 15 #=> false
lub jak to napisał:
a= (1..10)
a === 5 #=> true
a === 16 #=> false
Musisz być pewny wartości zakresu i wartości testowanej są typu kompatybilnym w przeciwnym razie zostanie zgłoszony wyjątek.
(2.718..3.141) === 3 #=> true
(23..42) === "foo" # raises exception
Jeśli chcesz zobaczyć różnicę, otwartą IRB i typ:
(1..10**9) === 5 #=> true
(1..10**9).to_a.include?(5) # wait some time until your computer is out of ram and freezess
Bardzo dobra odpowiedź! –
Dotyczy to tylko zakresów, OP pytał o listy (i używany zakres tylko jako przykład listy) – truppo
napisał listę list, ale użył zakresu w swoim przykładzie, więc myślę, że chce mieć zasięg. Wydaje się, że w Pythonie nie ma natywnej metody tworzenia zakresu, który nie jest listą. (ale muszę podkreślić, że nie jestem ekspertem od Pythona, więc moje założenie może być błędne) – johannes
Później podobne pytanie nie brzmi w kategoriach Pythonie, z większą liczbą odpowiedzi: https://stackoverflow.com/questions/3343861/how-do-i-check-to-see-if-my-array-includes-an-object –