python any()およびall()の使用例-優雅に判断文で「または」機能を実現

4889 ワード

python anyとallの使い方
文書ディレクトリ
  • python anyとall用法
  • 用法
  • 注意事項
  • 例を挙げる
    実装:virt-whoプロセスのステータスを表示するコマンドをlinuxコマンドで実行した後、異なるステータスを分類し、対応するステータス値がカプセル化された関数を返します:runcmd():linuxコマンドを実行し、結果を返すプロセスには以下のステータスがある可能性があります:1.virt-who is running 2.virt-who is stopped 3.virt-who is Active: active (running) 4.virt-who is Active:inactive(dead)一般表記:
    def get_status():
    	stdout = runcmd('systemctl status virt-who')
    	if 'is running' in stdout or 'Active: active (running)' in stdout:
    		return 'running'
    	elif 'is stopped' in stdout or 'Active: inactive (dead)' in stdout:
    		return 'stopped'
    	else:
    		return 'undefined'
    

    この方法は機能を実現したが、一つの特徴を際立たせた:“俗”!!!(感嘆符究極嫌悪)より優雅な実現方法は:
    def get_status():
    	stdout = runcmd('systemctl status virt-who')
        running_stauts = ['is running', 'Active: active (running)']
        stopped_status = ['is stopped', 'Active: inactive (dead)']
        if any(key in stdout for key in running_stauts):
            return 'running'
        elif any(key in stdout for key in stopped_status):
            return 'stopped'
        else:
            return 'undefined'
    

    追い詰められて一気に昇進したのではないでしょうか.
    使用法
  • any(x):
  • xオブジェクトが空オブジェクトであるか否かを判断し、いずれも空、0、falseであればfalseを返し、いずれも空、0、falseでなければtrue
  • を返す.
  • all(x):
  • all(x)パラメータxオブジェクトのすべての要素が0,’,Falseまたはxが空のオブジェクトでない場合はTrueを返し,そうでない場合はFalse
  • を返す.

    注意事項
     all([]) #    
    

    返される値は:True
    all(()) #    
    

    返される値は、True、すなわち、Nullタプル、Nullリストの戻り値のいずれもTrueです.