Python—有没有更优雅的方法来编写包含多个或多个
我有这样一个假设或陈述:Python—有没有更优雅的方法来编写包含多个或多个,python,Python,我有这样一个假设或陈述: a = 1 b = 2 c = 3 d = 4 if a == 5 or b == 5 or c == 5 or d == 5: # do something else: # do something different 我想知道这是不是最好的写法?在我看来,这是最好的 if any(x==5 for x in (a, b, c, d)): ... 你可以看一下 类似地,如果要执行多个和检查,可以使用相同语法的all() 最后,对于你的特殊情
a = 1
b = 2
c = 3
d = 4
if a == 5 or b == 5 or c == 5 or d == 5:
# do something
else:
# do something different
我想知道这是不是最好的写法?在我看来,这是最好的
if any(x==5 for x in (a, b, c, d)):
...
你可以看一下
类似地,如果要执行多个和
检查,可以使用相同语法的all()
最后,对于你的特殊情况,因为你唯一想做的就是会员资格测试,我会选择@Eric发布的答案。我的方法更为通用。在我看来,这更可取
if any(x==5 for x in (a, b, c, d)):
...
你可以看一下
类似地,如果要执行多个和
检查,可以使用相同语法的all()
最后,对于你的特殊情况,因为你唯一想做的就是会员资格测试,我会选择@Eric发布的答案。我的方法更通用。您可以在list语法中使用
元素。此外,如果只想打印true
或false
,则无需使用if-else
语句。您可以直接打印布尔值:
print(5 in [a, b, c, d])
# False
如果需要小写字符串:
print(str(5 in [a, b, c, d]).lower())
# "false"
最后,如果您经常需要此测试,可以将值打包到:
您需要花费一些时间来创建集合,但是查询所有值中的5应该会更快,特别是当有许多变量时。您可以使用list
语法中的元素。此外,如果只想打印true
或false
,则无需使用if-else
语句。您可以直接打印布尔值:
print(5 in [a, b, c, d])
# False
如果需要小写字符串:
print(str(5 in [a, b, c, d]).lower())
# "false"
最后,如果您经常需要此测试,可以将值打包到:
您需要花费一些时间来创建集合,但是查询所有值中的5应该会更快,特别是当存在许多变量时。如果[a,b,c,d]中的5,您可以使用:
如果您想检查具有不同编号的变量的相等性,any()
是一种安全的选择
如果有([a==1,b==2,c==3,d==4]):
如果[a,b,c,d]中有5个,您可以使用:
如果您想检查具有不同编号的变量的相等性,any()
是一种安全的选择
如果有([a==1,b==2,c==3,d==4]):
也许只需在中使用:
if 5 in (a,b,c,d):
print('true')
else:
print('false')
或者只是
print(5 in (a,b,c,d))
也许只需在
中使用:
if 5 in (a,b,c,d):
print('true')
else:
print('false')
或者只是
print(5 in (a,b,c,d))
对于过早的优化,使用集合
而不是列表
。@Chris_Rands:为了防止这不是100%的讽刺,我添加了一个关于集合的注释。使用集合
比使用列表
有什么好处,是不是更快了?@Lewis909有很多变量(比如1000),应该快得多,是的。否则,正如Chris_Rands所提到的,这将是过早的优化。对于过早的优化,使用集合而不是列表@Chris_Rands:为了防止这不是100%的讽刺,我添加了一个关于集合的注释。与列表相比,使用集合有什么好处,它只是更快吗?@Lewis909有很多变量(比如1000),它应该更快,是的。否则,正如Chris_Rands所提到的,这将是过早的优化。我使用print
作为if语句做某事的示例,我编辑了问题以反映这一点。我使用print
作为if语句做某事的示例,我编辑了这个问题以反映这一点。我更喜欢这个问题,因为它的可读性优于中的5[…
解决方案。它还可以很好地概括任何使用x
的逻辑值表达式,而不仅仅是等式。我很欣赏这个答案,因为学习Python的人看到一个问题的不同解决方案很有用。我更喜欢这个解决方案,因为它的可读性优于中的5[…
解决方案。它还使用x
很好地概括了任何逻辑值表达式,而不仅仅是等式。我很欣赏这个答案,因为学习Python的人看到问题的不同解决方案很有用。