python--文字リストの空の文字とNone要素を優雅に削除
5109 ワード
このコードは実は「廖雪峰公式サイト」のpythonにおける高次関数filterの使用で見たもので、当時学んだときはこの場所で長い間考えていたので、面白かったので、少し整理しました.
空の文字列を削除するコードは、次のとおりです.
コードはとても简洁で、効果、Pythonオンラインツール|菜鸟教程まで走って见ることができて、とてもnice~しかし関数not_Emptyの戻り値は少し複雑で、よく分析することができます.
strip()関数自体はstrタイプに対して動作するため、s=Noneの場合、returns.strip()を1つ単独で使用すると「『NoneType』object has no attribute‘strip』」というエラーが表示されます.
ただし、s[]にNoneメンバーが含まれていないことを保証できれば、関数は直接書くこともできます.
したがって、return s and s.strip()の役割は、s='''またはs='''しかし、なぜs=Noneの場合、return s and s.strip()はエラーを報告しないのでしょうか.なぜならand演算に関与するパラメータが前後からandをTrueにすることが不可能な場合、and演算は早期に終了し、python自体が解釈言語であるため、実行しながらチェックするためである.まだs and s.strip()のs.strip()まで運行されていないうちに運行が完了したという一言(虚晃一銃)は、当然間違いなく報告されます~
最後にlambda式を使用して、上記のプログラムをさらにカプセル化できます.
ゞ 刺激!ゞ
空の文字列を削除するコードは、次のとおりです.
def not_empty(s):
return s and s.strip()
print(list(filter(not_empty, ['A', '', 'B', None,'C', ' '])))
コードはとても简洁で、効果、Pythonオンラインツール|菜鸟教程まで走って见ることができて、とてもnice~しかし関数not_Emptyの戻り値は少し複雑で、よく分析することができます.
- a b and a and b:
- , a and b = b;
- None, , '', a and b = ''
- None, a and b = None
strip()関数自体はstrタイプに対して動作するため、s=Noneの場合、returns.strip()を1つ単独で使用すると「『NoneType』object has no attribute‘strip』」というエラーが表示されます.
ただし、s[]にNoneメンバーが含まれていないことを保証できれば、関数は直接書くこともできます.
def not_empty(s):
return s.strip()
print(list(filter(not_empty, ['A', '', 'B', 'C', ' '])))
したがって、return s and s.strip()の役割は、s='''またはs='''しかし、なぜs=Noneの場合、return s and s.strip()はエラーを報告しないのでしょうか.なぜならand演算に関与するパラメータが前後からandをTrueにすることが不可能な場合、and演算は早期に終了し、python自体が解釈言語であるため、実行しながらチェックするためである.まだs and s.strip()のs.strip()まで運行されていないうちに運行が完了したという一言(虚晃一銃)は、当然間違いなく報告されます~
最後にlambda式を使用して、上記のプログラムをさらにカプセル化できます.
def str_Nempty(s):
return list(filter(lambda s: s and s.strip(),s))
print(str_Nempty(['A', '', 'B', 'C', ' ']))
ゞ 刺激!ゞ