[英]How to check if certain variables and specific keys of a dictionary are None in a pythonic way?
假設一個dict
如下:
dict_a = {'cc':None, 'pt':None, 'v':87.7, 'sd':None}
和幾個變量(不是字典的一部分)如下:
vf = None
vt = None
我想做的是檢查cc
, pt
, vf
, vt
是否一次全部為None
。
我努力了:
if all(dict_a[c] is None for c in ('cc', 'pt')):
if all(i is None for i in (vf, vt)):
print('Values are none')
並且它有效,但是是否有一種更有效和更 Pythonic 的方法來檢查dict
中的鍵和變量是否沒有?
我對這個有點懷疑。 您的代碼似乎很好,並且 dict 值和變量之間的區別是None
感覺很合理。 但是,您可以嘗試以下方法:
all(dict_a.get(x, x) is None for x in ('cc', 'pt', vf, vt))
...但是您需要更加小心。
它變壞的一個(相當復雜的)示例是在初始字典中有一個None
鍵指向一個非None
值,並且vf
和vt
同時為None
。 那會產生假陰性。
一個更健壯和優雅的替代方案是:
all(globals().get(x, dict_a.get(x, '')) is None for x in ('cc', 'pt', 'vf', 'vt'))
但在這里你必須引用'vf'
和'vt'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.