簡體   English   中英

如何以pythonic方式檢查字典的某些變量和特定鍵是否為None?

[英]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

我想做的是檢查ccptvfvt是否一次全部為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值,並且vfvt同時為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM