2016-08-16 104 views
0

我有兩個返回兩個值的對象,比如說x1,x2。我只是要檢查是否存在與否的價值觀和是否存在應該歸還這些,這不是無,假,0Python - 從兩個值中獲取滿足OR真值表的值

這僅僅是簡單的嘗試,這是OK:

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

但我覺得,應該有東西在Python這將返回上述變量,而不是與一個有效的方式值: 像:

>>> 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

剔除掉任何零:

filter(lambda x: x, [x1, x2])