我正试图找出解决这一特殊挑战的方法,到目前为止,我很难过。
基本上,我要做的是:
false
s
false
中存在s
,请返回布尔值True
但是,我不允许使用任何条件语句 。
也许有办法用对象做到这一点?
答案 0 :(得分:1)
不使用if语句评估条件:
<强>真强>
>>> s = 'abcdefalse'
>>> 'false' in s
True
<强>题:强>
>>> s = 'abcdefals'
>>> 'false' in s
False
如果为假则返回空白:
>>> s = 'abcdefals'
>>> 'false' in s or ''
''
答案 1 :(得分:1)
如果某个地方需要str.__contains__
,则总是In [69]: str.__contains__('**foo**', 'foo')
Out[69]: True
:
filter
这可用于map
或sorted(some_list, key=partial(str.__contains__,'**foo**'))
:
in
更常见的用例是使用理解为列表中的每个元素分配真值。然后我们可以在Python中使用In[70]: ['foo' in x for x in ['**foo**','abc']]
Out[70]: [True, False]
关键字:
sorted(some_list, key=lambda x: 'foo' in x)
后者应该始终是首选。有边缘情况只能有一个功能。
但即便如此,你也可以传递一个lambda并使用语句:
#!/bin/bash
# some older test, doesn't work and complains and I get this message on command line: "QApplication::qAppName: Please instantiate the QApplication object first"
# I also can't enter text after command executes
#echo "Hello World!"
#exec konsole --noclose -e cat ~/.aliases
# opens terminal but then I can't control terminal afterwards
xterm -hold -e "echo Hello My World"
# didn't do anything
#exit 0
# didn't do anything except make me type exit an extra time where I executed my shell script
#$SHELL