Sprawdź, czy element znajduje się w tablicy / liście

Jeśli mam tablicę łańcuchów, czy mogę sprawdzić, czy łańcuch jest w tablicy bez wykonywania pętli for? W szczególności, szukam sposobu, aby to zrobić w if oświadczenie, więc coś takiego:

if [check that item is in array]:
Author: user1767754, 2012-06-28

5 answers

Zakładając, że masz na myśli "listę", gdzie mówisz "tablica", możesz zrobić

if item in my_list:
    # whatever
 287
Author: Sven Marnach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-28 19:40:26

Zakładam również, że masz na myśli "listę", kiedy mówisz " tablica."Rozwiązanie Svena Marnacha jest dobre. Jeśli masz zamiar wykonywać powtarzające się kontrole na liście, to może warto przekonwertować ją na zestaw lub frozenset, który może być szybszy dla każdej kontroli. Zakładając, że Twoja lista strs nazywa się subjects:

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever
 14
Author: Michael Hoffman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-28 19:46:02

Użyj funkcji lambda.

Powiedzmy, że masz tablicę:

nums = [0,1,5]

Sprawdź czy 5 jest w nums:

(len(filter (lambda x : x == 5, nums)) > 0)

To rozwiązanie jest bardziej wytrzymałe. Możesz teraz sprawdzić, czy jakakolwiek liczba spełniająca określony warunek znajduje się w tablicy nums.

Na przykład sprawdź, czy w nums istnieje jakakolwiek liczba większa lub równa 5:

(len(filter (lambda x : x >= 5, nums)) > 0)
 2
Author: Marquistador,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-11 16:33:59

Musisz użyć .wartości dla tablic. na przykład powiedzmy, że masz dataframe, który ma nazwę kolumny ie, test ['Name'], możesz zrobić

if name in test['Name'].values :
   print(name)

Dla normalnej listy nie musisz jej używać .wartości

 0
Author: sam komo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-25 11:28:10

Możesz również użyć tej samej składni dla tablicy. Na przykład wyszukiwanie w ramach serii Pandy:

ser = pd.Series(['some', 'strings', 'to', 'query'])

if item in ser.values:
    # do stuff
 -3
Author: BCR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-11 23:32:01