选择给定值并忽略lis中的非给定值

2024-03-29 13:32:21 发布

您现在位置:Python中文网/ 问答频道 /正文

a1、a2或a3中的一个作为值给定,而另一个为空。如果我只想打印一个给定的值,你想写什么代码? 事先非常感谢。你知道吗

例如

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

a=5

Tags: 代码a2a1a3emptyprint
3条回答

尝试使用短路特性:

print(a1 or a2 or a3)

只有一个不同于没有的结果。你知道吗

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

试试这个:

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

因为非空值与True相同。你知道吗

您还可以使用:

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

相关问题 更多 >