Python 无条件字符串的布尔求值
我正试图找出解决这一特殊挑战的办法,但到目前为止我被难住了 基本上,我想做的是:Python 无条件字符串的布尔求值,python,string,python-2.7,boolean,substring,Python,String,Python 2.7,Boolean,Substring,我正试图找出解决这一特殊挑战的办法,但到目前为止我被难住了 基本上,我想做的是: 检查字符串s中是否存在子字符串false 如果s中存在false,则返回布尔值True 但是,我不允许使用任何条件语句 也许有一种方法可以做到这一点 在不使用if语句的情况下计算条件: sorted(some_list, key=lambda x: 'foo' in x) 正确: >>> s = 'abcdefalse' >>> 'false' in s True >&
s
中是否存在子字符串false
s
中存在false
,则返回布尔值True
也许有一种方法可以做到这一点 在不使用if语句的情况下计算条件:
sorted(some_list, key=lambda x: 'foo' in x)
正确:
>>> s = 'abcdefalse'
>>> 'false' in s
True
>>> s = 'abcdefals'
>>> 'false' in s
False
>>> s = 'abcdefals'
>>> 'false' in s or ''
''
错误:
>>> s = 'abcdefalse'
>>> 'false' in s
True
>>> s = 'abcdefals'
>>> 'false' in s
False
>>> s = 'abcdefals'
>>> 'false' in s or ''
''
如果为False,则返回空白:
>>> s = 'abcdefalse'
>>> 'false' in s
True
>>> s = 'abcdefals'
>>> 'false' in s
False
>>> s = 'abcdefals'
>>> 'false' in s or ''
''
总是有
str.\uuuu包含\uuuu
,如果它需要作为某个函数:
In [69]: str.__contains__('**foo**', 'foo')
Out[69]: True
这可以用于过滤器
或映射
:
sorted(some_list, key=partial(str.__contains__,'**foo**'))
更常见的用例是使用理解为列表中的每个元素指定一个真值。然后我们可以在Python中使用中的关键字:
In[70]: ['foo' in x for x in ['**foo**','abc']]
Out[70]: [True, False]
后者应始终是首选。在某些情况下,可能只有一个函数是可能的
但即使这样,您也可以传递lambda并使用以下语句:
sorted(some_list, key=lambda x: 'foo' in x)
如果在<代码> S/<代码>中不存在<代码> false <代码>?那么返回BLACK,你认为“条件语句”是什么?任何类型的如果StestOpP都要空白,如果是假。您的输入/输出格式是错误的。我可能是唯一一个对此感到烦恼的人,但请注意:)顺便说一句,我非常喜欢这个答案。我投了更高的票,我认为这是更好的答案。为了完整起见,我刚刚添加了\uuuuu contains\uuuuuu
,因为有时您无法在某个地方使用语句。。。