我正在尝试找出解决这一特定挑战的方法,但到目前为止我很困惑。
基本上,我想做的是:
- 检查字符串
s
中是否存在子字符串false
- 如果
s
中存在false
,则返回 boolean 值True
但是,我根本不允许使用任何条件语句。
也许有一种方法可以用对象来做到这一点?
最佳答案
如果某处需要将其作为函数,则总是有 str.__contains__
:
In [69]: str.__contains__('**foo**', 'foo')
Out[69]: True
这可以用于filter
或map
之类的东西:
sorted(some_list, key=partial(str.__contains__,'**foo**'))
更常见的用例是使用推导式为列表中的每个元素分配真值。然后我们可以使用Python中的in
关键字:
In[70]: ['foo' in x for x in ['**foo**','abc']]
Out[70]: [True, False]
后者应始终是首选。在某些边缘情况下,可能只有一个函数是可能的。
但即便如此,您也可以传递 lambda 并使用以下语句:
sorted(some_list, key=lambda x: 'foo' in x)
关于python - 不带条件的字符串的 boolean 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443863/