我正在尝试打印字典列表中是否有 nan 值,但未能执行此操作。
data = [{'A' : 2, 'B' : 'ssss'}, {'A' : 3, 'B' : 'xxx'}, {'A' :nan, 'B' : 'ssss'}]
Run Code Online (Sandbox Code Playgroud)
代码 :
for x in data:
if (x['A']== 2):
print('two')
elif (x['A']== np.nan)
print('null')
else:
print('nothing')
Run Code Online (Sandbox Code Playgroud)
您可以使用 获取字典的值dict.values,在这种情况下,我们可以map使用此方法,并检查any返回的生成器中的值是否与其自身不相等,这意味着它们是NaN:
from itertools import chain
data = [{'A' : 2, 'B' : 'ssss'}, {'A' : 3, 'B' : 'xxx'},
{'A' :float('nan'), 'B' : 'ssss'}]
Run Code Online (Sandbox Code Playgroud)
any(i!=i for i in chain.from_iterable(map(dict.values, data)))
# True
Run Code Online (Sandbox Code Playgroud)
或者遵循代码中的逻辑:
for x in data:
if (x['A']== 2):
print('two')
elif (x['A']!= x['A']):
print('null')
else:
print('nothing')
Run Code Online (Sandbox Code Playgroud)