gpt4 book ai didi

python - 如果 X 或 Y 或 Z 则使用 *that* 一个?

转载 作者:太空狗 更新时间:2023-10-29 20:34:38 25 4
gpt4 key购买 nike

有没有一种方法可以编写一个可以有很多参数的 If(或等效的)语句,如果其中任何一个满足逻辑,就使用那个变量?

例如

if len(x) == 1 or len(y) == 1 or len(z) == 1 or ... len(zz) == 1:
# do something with the variable that met the condition

所以说只有 z 的长度为 1,我能否以采用第一个 True 答案的方式编写上面的想法/公式并使用那个?

类似的东西

x = "123"
y = "234"
z = "2"
xx = "1234"
yy = "12345"

if len(x) == 1 or len(y) == 1 or len(z) == 1 or len(xx) == 1 or len(yy) == 1:
#do something with the variable that satisfies the condition, so `z` in this case.

这有意义吗?变量的长度随时可能改变,所以我希望能够说“如果满足任何条件,则使用满足条件的变量”......?

在上面,我事先不知道 z 将是唯一满足条件的,所以我的 Then 语句不能是 z = "new value" 或任何我想要的用它来做。

编辑:抱歉,根据我知道的评论,检查整数上的 len 是不行的。这仅用于说明目的,这是我首先想到的“测试”。抱歉,如果 len 位令人困惑。我主要只是想看看我是否可以使用 If 语句(或相关语句),因为我不知道我的许多变量中的哪些变量会满足条件。 (我对 python 还是个新手,所以对于我缺乏语义或适当的术语,我深表歉意)。我想尽可能避免使用 elif,因为它会变得很粘。 (但如果这是最 pythonic 的方式,那就这样吧!)

最佳答案

虽然@pault 的回答解决了您的问题,但我认为它的可读性并不强。如果你只有几个变量,python 的口头禅是一种直接、明确的方式:

if len(x) == 1:
f(x)
elif len(y) == 1:
f(y)
elif len(z) == 1:
f(z)

否则,如果您有一个列表,for 循环是可读且高效的:

for l in ls:
if len(l) == 1:
f(l)
break

关于python - 如果 X 或 Y 或 Z 则使用 *that* 一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com