gpt4 book ai didi

python - 检查列表是否为空或仅包含零

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:30 25 4
gpt4 key购买 nike

现在,在我的代码中有两个列表:aboveAdj1aboveAdj2,它们要么包含 1 和 0,要么为空:

if len(aboveAdj1) and len(aboveAdj2):
perAboveFix = 100*int(sum(aboveAdj1) + sum(aboveAdj2))/int(len(aboveAdj1) + len(aboveAdj2))

如果 aboveAdj1aboveAdj2 都不为空或全为零,那么我想计算比率。如果另一个变量为空,是否有一种仅基于一个变量计算比率的高效/简短方法,而无需编写一堆 if 语句?

例如,如果aboveAdj1为空或全为零,则计算:

perAboveFix = 100*int(sum(aboveAdj2))/int(len(aboveAdj2))

反之亦然。

最佳答案

基本上你想检查是否:

  • 列表不为空
  • 并且它们至少包含一个不为零的值。

any() 函数只是为您做这件事,因为如果列表不为空,则 any(some_list)True 并且包含至少一个非零值。

因此,如果您只想在两个列表都有效时计算比率,您可以这样做:

if any(aboveAdj1) and any(aboveAdj2):
perAboveFix = 100 * (sum(aboveAdj1) + sum(aboveAdj2)) / (len(aboveAdj1) + len(aboveAdj2))

否则,如果你想在至少一个列表有效时计算它,那么你可以这样做:

if any(aboveAdj1 + aboveAdj2):
perAboveFix = 100 * (sum(aboveAdj1) + sum(aboveAdj2)) / (len(aboveAdj1) + len(aboveAdj2))

另请注意,您不需要使用 int() 函数,因为正如您所说,您的列表仅包含 0s 和 1s,以及 len() 已经返回整数值。

关于python - 检查列表是否为空或仅包含零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026803/

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