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
中沒有