2016-08-16 140 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])