Jam
Jam

Reputation: 31

Boolean evaluation of a string without conditionals

I'm trying to figure out the solution to this particular challenge and so far I'm stumped.

Basically, what I'm looking to do is:

  1. Check if substring false exists in string s
  2. If false exists in s, return the boolean True

However, I am not allowed to use any conditional statements at all.

Maybe there is a way to do this with objects?

Upvotes: 1

Views: 211

Answers (2)

Sebastian Wozny
Sebastian Wozny

Reputation: 17506

There is always str.__contains__ if it's needed as a function somewhere:

In [69]: str.__contains__('**foo**', 'foo')
Out[69]: True

This could be used for things like filter or map:

sorted(some_list, key=partial(str.__contains__,'**foo**'))

The much more common usecase is to assign a truth value for each element in a list using a comprehension. Then we can make use of the in keyword in Python:

In[70]: ['foo' in x for x in ['**foo**','abc']]
Out[70]: [True, False]

The latter should always be preferred. There are edge cases where only a function might be possible.

But even then you could pass a lambda and use the statement:

sorted(some_list, key=lambda x: 'foo' in x)

Upvotes: 1

dot.Py
dot.Py

Reputation: 5157

Evaluating condition without using if statement:

True:

>>> s = 'abcdefalse'
>>> 'false' in s
True

False:

>>> s = 'abcdefals'
>>> 'false' in s
False

Return blank if False:

>>> s = 'abcdefals'
>>> 'false' in s or ''
''

Upvotes: 1

Related Questions