我试图遍历一个函数返回的整数列表。
问题:我想检查列表中的任何元素是否大于特定值(95),然后一次执行一次语句,而不是每次迭代,即遍历列表,即使有更多元素,也要检测大于95的数字,然后执行该语句。
我已经尝试过,但该语句在满足条件的次数不停地执行
这是我正在尝试的代码
for path in Path(spath).iterdir():
for n in cosine_sim(file, path):
x = all(n)
if x > 95:
print("suceess...")
Run Code Online (Sandbox Code Playgroud)
在success...打印多次
Python具有内置功能,可以大致满足您的需求:
any(iterable)如果从至少一个元件返回true iterable是truthyall(iterable)如果来自的每个元素iterable均为真,则返回true考虑到这一点,一般的习惯用法是检查列表中每个元素的条件,然后在其中使用all()或any():
for n in cosine_sim(file, path):
if all(x > 95 for x in n):
print("success...")
Run Code Online (Sandbox Code Playgroud)
这可能比您想要的要慢一些,因为它实际上必须x > 95为每个计算x。例如,如果您要确保列表中的每个数字nums都不等于零,或者确保其中没有任何字符串strs为空,则可以只使用all(nums)或all(strs)-,因为数字为0,并且空字符串都评估为false,因此您不必先将它们转换为布尔值。
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |