2013-05-18 2 views
0

как я могу понять, что ключ и значение не в словаре? Если это возможно, я буду использовать, как если новое значение в словаре добавить его. Примеркак проверить значение ключа в словаре со значением по умолчанию

d = {1:"k", 2:"l"} 

если 3 не в списке, код должен понять и поставить это новый элемент в словарь со значением нуль

d = {1:"k", 2:"l", 3:"null"} 
+6

Использование строки '" null "' как * значение null * является ужасной идеей. Используйте 'None' (или просто не имейте там значения. Вы можете просто поймать исключение, когда пытаетесь его получить). –

+0

Что вы, мужчины, «ключ и значение нет в словаре»? ключ не в словаре или даже ситуации, когда ключ находится в словаре, но значение отличается в этом случае? – oleg

+0

@oleg прочитал то, что вы написали. Дайте ответ самому себе. не беспокойте меня. IDIOAT – user2396467

ответ

7

Вы можете использовать dict.setdefault:

d.setdefault(3,"null") 

демо:

>>> d = {1:"k", 2:"l"} 
>>> d.setdefault(3,"null") # if key is found then return the value else 
           # set the new key and return the new value 
'null'      
>>> d 
{1: 'k', 2: 'l', 3: 'null'} 

помощь на dict.setdefault:

>>> dict.setdefault? 
Type:  method_descriptor 
String Form:<method 'setdefault' of 'dict' objects> 
Namespace: Python builtin 
Docstring: D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D 
2

без использования значений ДИКТ/по умолчанию по умолчанию, вы можете добиться этого с:

if 3 not in d: 
    d[3] = None # or "null" 
2

Используйте оператор in.

>>> d = {1:"k", 2:"l"} 
>>> 1 in d 
True 
>>> 2 in d 
True 
>>> 3 in d 
False 
>>> if not 3 in d: 
...  d[3] = "null" 
... 
>>> d 
{1: 'k', 2: 'l', 3: 'null'} 
>>> 
+2

'3 не в d' выглядит лучше – jamylak

+0

@jamylak, согласовано. Просто я всегда использую стиль 'not condition'. – taskinoor

+0

Значит, вы всегда будете писать 'not (x == y)' над 'x! = Y'? – Eric

0

вы должны понимать, что есть два вопроса 1. как проверить, если ключ существует в хэш 2. как проверить значение ключевым в хэш-

a1.

key in hash 

a2.

hash[key] 
Смежные вопросы