Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无条件字符串的布尔求值_Python_String_Python 2.7_Boolean_Substring - Fatal编程技术网

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
    ,因为有时您无法在某个地方使用语句。。。