str.find()
見つからない場合は、常に-1
を返します。 str.find()
とreturn None
の代わりに式を書くことはできますか?substrが見つからない場合、式はNoneに評価されます。
9
A
答えて
3
に最後の行を変更します。
- が
- 求める式を
None
に見つからない場合 見つけたとき
- は、インデックスと評価
唯一の解決策を(Pythonの2.4はそれを処理できるように)私はすべての要件を満たすを思い付くことができこれを三項で使用しません奇妙なこと:例えば
(lambda x: x and x - 1)((str.find(substr) + 1) or None)
:
>>> (lambda x: x and x - 1)(('abcd'.find('b') + 1) or None)
1
>>> (lambda x: x and x - 1)(('abcd'.find('_') + 1) or None)
>>>
私はPython 2.4をインストールしてテストしていないので、動作することを願っています。
+1
lambda really works!tks〜 – ThunderEX
5
None if str.find() < 0 else str.find()
とコードの重複はあなたを気に(そしてそれが必要)の場合:
index = str.find()
None if index < 0 else index
三条件は2.5でaddedました。古いバージョンのPythonをお持ちの場合は、代わりに次のようにしてください:
def my_find(str, sub_str)
index = str.find(sub_str)
if index < 0:
return None
else:
return index
7
このような意味ですか? Pythonの2.4で
def find2(str, substr):
result = str.find(substr)
return result if result != -1 else None
、私は総括、あなたが何かしたい場合
if result != -1:
return result
else:
return None
関連する問題
- 1. JavaScriptが式評価の場合
- 2. 式が評価されない
- 3. Sympy - 式が評価されない
- 4. SxssfTransformerを使用している場合、数式が評価されない
- 5. 評価値はいつ評価されますか?
- 6. ifステートメントがtrueに評価されない場合(必要な場合でも)
- 7. ブロックが予想通りに評価されない場合
- 8. 条件が期待通りに評価されない場合
- 9. bashのループが評価されていない場合
- 10. メンバテンプレートがインスタンス化されていない場合、static_assertを評価しますか?
- 11. /Elseステートメントが評価されない場合
- 12. 条件が評価されない場合
- 13. なぜこのJavaScript式はfalseに評価されますか?
- 14. 条件式が-1と評価された場合にブロックが実行される場合のPython
- 15. 空白がない場合にpostfixを評価するには?
- 16. 式が定数エラーコードに評価されていない
- 17. 式が定数に評価されていない
- 18. {headers:headers}という式は何と評価されますか?
- 19. 属性が見つからない場合、XPathがPythonで 'None'を返すようにするには?
- 20. JPMML入力値がない場合、述部は未知(つまり、ヌル参照)と評価されます。
- 21. これはなぜ、左結合はクロス結合に評価されますか?
- 22. Pythonのexecと評価がコンパイルされた場合は?
- 23. 評価されていないMule式をカスタムコネクタに渡す
- 24. この式が正しく評価されないのはなぜですか?
- 25. 式がSQL Serverで評価されていない
- 26. Angular JS式が評価されていない
- 27. インライン評価が何もない場合に連結する
- 28. ブール式がどのような順序で評価されていますか
- 29. Apache POIの数式が評価されない
- 30. symfony 3検証式が評価されない
(What)試しましたか? –