Sprawdź, czy element znajduje się w tablicy / liście
203
Jeśli mam tablicę ciągów, czy mogę sprawdzić, czy ciąg znaków znajduje się w tablicy bez wykonywania forpętli? W szczególności szukam sposobu, aby to zrobić w ifinstrukcji, więc coś takiego:
@jdi, a ta pętla będzie działać znacznie szybciej niż ta, która jest wyraźnie zakodowana w Pythonie, nie mówiąc już o łatwiejszym czytaniu.
Mark Ransom
17
Zakładam również, że masz na myśli „lista”, kiedy mówisz „tablica”. Rozwiązanie Svena Marnacha jest dobre. Jeśli zamierzasz powtarzać kontrole na liście, warto przekonwertować ją na zestaw lub zestaw zamrożony, co może być szybsze dla każdej kontroli. Zakładając, że twoja lista strów nazywa się subjects:
subject_set = frozenset(subjects)if query in subject_set:# whatever
Odpowiedzi:
Zakładając, że masz na myśli „listę”, w której mówisz „tablicę”, możesz to zrobić
Działa to w przypadku każdej kolekcji, nie tylko list. W przypadku słowników sprawdza, czy dany klucz jest obecny w słowniku.
źródło
Zakładam również, że masz na myśli „lista”, kiedy mówisz „tablica”. Rozwiązanie Svena Marnacha jest dobre. Jeśli zamierzasz powtarzać kontrole na liście, warto przekonwertować ją na zestaw lub zestaw zamrożony, co może być szybsze dla każdej kontroli. Zakładając, że twoja lista strów nazywa się
subjects
:źródło
Użyj funkcji lambda.
Powiedzmy, że masz tablicę:
Sprawdź, czy 5 jest w
nums
:To rozwiązanie jest bardziej niezawodne. Możesz teraz sprawdzić, czy w Twojej tablicy znajduje się dowolna liczba spełniająca określony warunek
nums
.Na przykład sprawdź, czy istnieje dowolna liczba większa lub równa 5 w
nums
:źródło
TypeError: object of type 'filter' has no len()
Musisz użyć .values dla tablic. na przykład powiedzmy, że masz ramkę danych, która ma nazwę kolumny, tzn. przetestuj [„Nazwa”], możesz to zrobić
dla normalnej listy nie musisz używać wartości
źródło
Możesz także użyć tej samej składni dla tablicy. Na przykład wyszukiwanie w serii Pandy:
źródło