簡體   English   中英

檢查Dict值是否存在

[英]Checking if Dict Value exists

我嘗試尋找答案,但是沒有找到任何幫助。 所以我不得不問。

我有一個密碼收集器,該密碼收集器現在每次運行腳本時都會運行。 然后將該值存儲在內存中以用於該會話。

即使只要maya仍處於打開狀態就關閉該腳本,也可以訪問密碼。

我需要的是一種方法來查看該值是否已在內存中。 當我使用

print argdict['password']

我可以看到該字典在我的記憶中。 我試圖得到類似的東西

if argdict['password'] in locals():
    print 'its alive'

但這不會返回任何內容,那么檢查dict鍵或值是否存在的正確方法是什么。

用這個:
if 'password' in argdict:

測試“密碼”是否在字典的值中。

 "password" in d.itervalues()

測試“密碼”是否在字典的鍵中。

 "password" in d.keys()

你可以使用它做in

if 'password' in argdict:

我認為可能更優雅的是:

if argsdict.get('password', False):
    # do whatever

它將嘗試查看argsdict是否具有“密碼”鍵/值對,但如果沒有,它將求助於默認值,我將其設置為False. 因此, if False沒有“密碼”鍵,則條件變為if False ,因此條件塊將不會運行。

然而,這也不會,如果你有被認為是一個對象執行False為“密碼”的值。 評估為False各種值(嘗試通過bool(some_object)查看其評估為True還是False): 0, None, '', {}, []等。大多數空容器為False

因此,這可能是您最好的選擇:

if 'password' in argsdict:

檢查字典是否存在的正確方法是簡單地使用名稱:

>>> d = dict()
>>> 'd' in locals()
True

並查看是否是字典:

>>> isinstance(d, dict)
True

要檢查密鑰:

>>> d['password'] = 'foo'
>>> 'password' in d
True

要檢查值是否存在(並且是非空的):

>>> if d.get('password'): print True
...
True

要檢查該值是否為特定值:

>>> d.get('password') == 'foo'
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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