any是python的內置函數,它接收一個可迭代對象,該可迭代對象中的元素可被計算為True的時候,any就返回True。
例子:
obj = {
'a': {'a1': 12, 'a2':16},
'b': {'b1': 22, 'b2': 23},
'c': {'c1': 32, 'c2': 4}
}
ans = [x for x in obj if any(y < 20 for y in obj[x].values())]
print(ans)
x for x in obj中的x會遍歷obj中的key,也就是a, b, c。
y < 20 for y in obj[x].values()這句中的obj[x].values()會返回obj所有的鍵對應的值。如下圖:

那y呢?y是什么?打印一下看看

可以看到y是obj[x].values()里面對應的值。
每當y小於20,該表達式就會計算為True,any也會返回True,相對應的x就會被添加到最終的列表中。最后結果為

因為a和c中都有小於20的值,而b中沒有
