If I've got an array of strings, can I check to see if a string is in the array without doing a for
loop? Specifically, I'm looking for a way to do it within an if
statement, so something like this:
if [check that item is in array]:
user1767754
21.9k15 gold badges133 silver badges154 bronze badges
asked Jun 28, 2012 at 19:39
SomeKittensSomeKittens
38k19 gold badges111 silver badges142 bronze badges
3
Assuming you mean "list" where you say "array", you can do
if item in my_list:
# whatever
This works for any collection, not just for lists. For dictionaries, it checks whether the given key is present in the dictionary.
answered Jun 28, 2012 at 19:40
Sven MarnachSven Marnach
544k114 gold badges914 silver badges816 bronze badges
4
I'm
also going to assume that you mean "list" when you say "array." Sven Marnach's solution is good. If you are going to be doing repeated checks on the list, then it might be worth converting it to a set or frozenset, which can be faster for each check. Assuming your list of strs is called subjects
:
subject_set = frozenset[subjects]
if query in subject_set:
# whatever
Mark Ransom
290k40 gold badges384 silver badges607 bronze badges
answered Jun 28, 2012 at 19:43
Michael HoffmanMichael Hoffman
30.9k7 gold badges58 silver badges82 bronze badges
Use a lambda function.
Let's say you have an array:
nums = [0,1,5]
Check whether 5 is in nums
in Python 3.X:
[len[list[filter [lambda x : x == 5, nums]]] > 0]
Check whether 5 is in nums
in Python 2.7:
[len[filter [lambda x : x == 5, nums]] > 0]
This solution is more robust. You can now check whether any number satisfying a certain condition is in your array nums
.
For example, check whether any number that is greater than or equal to 5 exists in nums
:
[len[filter [lambda x : x >= 5, nums]] > 0]
T.Woody
1,0732 gold badges11 silver badges24 bronze badges
answered Sep 11, 2017 at 16:33
1
You have to use .values for arrays. for example say you have dataframe which has a column name ie, test['Name'], you can do
if name in test['Name'].values :
print[name]
for a normal list you dont have to use .values
slfan
8,805115 gold badges65 silver badges77 bronze badges
answered Nov 25, 2017 at 11:06
1
You can also use the same syntax for an array. For example, searching within a Pandas series:
ser = pd.Series[['some', 'strings', 'to', 'query']]
if item in ser.values:
# do stuff
answered Dec 11, 2015 at 23:32
BCRBCR
93011 silver badges26 bronze badges