2016-08-16 1 views
0

2つの値を返す2つのオブジェクトがあります。x1、x2と言うことができます。私はちょうどこれがOKであるだけのシンプルな試みですPython - 2つの値のうちOR真理値表を返す値を取得する

0、それは偽Noneでないものを、返す必要があります存在する値が存在するかどうかとかどうかを確認する必要があります。

def get_valid_keys(x1, x2): 
    """ """ 
    a = [] 
    if x1: a.append(x1) 
    if x2: a.append(x2) 
    return a   

しかし、 のような:

>>> x1, x2 = 0, 1 
>>> x1 or x2 
1  # It should return x2  
>>> x1, x2 = 1, 0 
>>> x1 or x2 
1 # It should return x1  
>>> x1, x2 = 0, 0 
>>> x1 or x2 
0 # It should return None  
>>> x1, x2 = 1, 1 
>>> x1 or x2 
1  # It should return x1, x2  
+0

'filter()'を見たことがありますか? https://docs.python.org/3/library/functions.html#filterまた、リストの理解を使用して行うこともできます。 – cdarke

+0

Pythonは参照の名前(「変数」)を「認識」していません。単に '' x1 ''を '0'の代わりに返すことはできません。 '0'からそれを参照する名前に戻ることはできません。 – DeepSpace

+1

@cdarke私はOPがその価値ではなく、参照の名前を得たいと思う。 – DeepSpace

答えて

2

雑草うち任意のゼロ:

私の代わりに効率的な方法と値の変数の上に戻ってくるのpythonで何かがあるはず、と感じ
関連する問題