如果多个列表上的条件
If condition on multiple list
我正在尝试编写一个 if 条件,在该条件下我测试字典中几个列表的标准差,我所做的 if 语句对我不起作用,正如您在代码中看到的那样:
a= {}
a[0] = [0.9907568097114563, 0.9913344979286194, 0.9907568097114563, 0.9913344979286194,
0.9907568097114563]
a[1] = [0.8538417220115662, 0.8526862859725952, 0.8411322832107544, 0.8659734129905701,
0.851530909538269]
a[n] = ...
if np.std(a[i] for i in range(len(a)) < 0.01 :
print("Early stopping here !")
我不确定你想做什么,但你在生成器上调用 np.std “a[i] for i in range(len(a))”,你有一个语法错误(缺少')')并且正在使用像列表这样的字典(虽然可能有效,但我不推荐它)。考虑对 if 语句使用“any”,您的代码将如下所示:
import numpy as np
a= {}
a[0] = [0.9907568097114563, 0.9913344979286194, 0.9907568097114563, 0.9913344979286194,
0.9907568097114563]
a[1] = [0.8538417220115662, 0.8526862859725952, 0.8411322832107544, 0.8659734129905701,
0.851530909538269]
# a[n] = ...
if all([np.std(a[i]) < 0.01 for i in a.keys()]):
print("Early stopping here !")
if
测试……嗯,一个 条件——一个 表达式的真实性。
您可以通过几种不同的方式获得您想要的结果 - 您可以创建一个条件来检查多项内容(any()
可能有用,也可能没有用),或者可能是一个包含单项检查的循环里面会更有帮助。
我正在尝试编写一个 if 条件,在该条件下我测试字典中几个列表的标准差,我所做的 if 语句对我不起作用,正如您在代码中看到的那样:
a= {}
a[0] = [0.9907568097114563, 0.9913344979286194, 0.9907568097114563, 0.9913344979286194,
0.9907568097114563]
a[1] = [0.8538417220115662, 0.8526862859725952, 0.8411322832107544, 0.8659734129905701,
0.851530909538269]
a[n] = ...
if np.std(a[i] for i in range(len(a)) < 0.01 :
print("Early stopping here !")
我不确定你想做什么,但你在生成器上调用 np.std “a[i] for i in range(len(a))”,你有一个语法错误(缺少')')并且正在使用像列表这样的字典(虽然可能有效,但我不推荐它)。考虑对 if 语句使用“any”,您的代码将如下所示:
import numpy as np
a= {}
a[0] = [0.9907568097114563, 0.9913344979286194, 0.9907568097114563, 0.9913344979286194,
0.9907568097114563]
a[1] = [0.8538417220115662, 0.8526862859725952, 0.8411322832107544, 0.8659734129905701,
0.851530909538269]
# a[n] = ...
if all([np.std(a[i]) < 0.01 for i in a.keys()]):
print("Early stopping here !")
if
测试……嗯,一个 条件——一个 表达式的真实性。
您可以通过几种不同的方式获得您想要的结果 - 您可以创建一个条件来检查多项内容(any()
可能有用,也可能没有用),或者可能是一个包含单项检查的循环里面会更有帮助。