选择给定值并忽略列表中的非给定值

时间:2018-01-25 01:54:01

标签: python list

a1,a2或a3中的一个作为值给出,而其他为空。如果我想打印出一个给定的值,你想要编写什么代码? 非常感谢你。

示例,

a1=empty
a2=5
a3=empty
a=[a1,a2,a3]
print(a)

a=5

3 个答案:

答案 0 :(得分:3)

python中的空值为None。也许是这样的:

a1 = None
a2 = 5
a3 = None
a = [a1,a2,a3]

def get_value(L):
    return [x for x in L if x is not None][0]

a = get_value(a)

print(a)

输出:

5

更新:如果列表a中没有值,则可能会失败,因此我们应该包含此案例的异常处理:

def get_value(L):
    try:
        return [x for x in L if x is not None][0]
    except IndexError:
        return None

答案 1 :(得分:2)

试试这个:

[e for e in a if e][0]

由于非空值与True相同。

你也可以使用:

[a.remove(None) for e in a.count(None)]
a[0]

答案 2 :(得分:1)

尝试使用短路属性:

print(a1 or a2 or a3)

结果只会是与None不同的一个。