2015-12-06 2 views
1

У меня есть словарь Python, следующим образом:проверка Python, если значение существует в словаре

users = {'user': {'pw': 'password'}} 

Как проверить, если значение существует в словаре?

я получил бы ложное в следующем если утверждение:

if 'password' in users: 
     return 'true' 
else: 
     return 'false' 
+1

Вы должны организовать данные таким образом, что операции, которые вы хотите выполнить дешевы, и выяснить, содержит ли словарь значения уже дорогая, не говоря уже о вложенной стоимости. Кроме того, практически нет причин проверять, используется ли пароль. Он просто утешает информацию и позволяет легко проникнуть в вашу систему. – user2357112

+1

@ user2357112 Моя интуиция в том, что ОП не поймет, что вы только что сказали. – nbro

+0

@nbro: Моя тоже, но воздействие информации может быть полезно для будущего понимания, даже если он не понимает это сейчас. – user2357112

ответ

-1

Вы бы

if users['user']['pw'] == 'password': 
    return 'true' 
else: 
    return 'false' 
1

У вас есть словарь внутри словаря, так чтобы проверить, если любой пользователь (верхний уровень) имеет пароль (ключ «PW») установлен на «пароль», вы можете использовать:

return 'password' in (user['pw'] for user in users.itervalues()) 

Также обратите внимание, что логические значения в Р ython - True и False. Если вы хотите, чтобы вернуть строки 'true' и 'false', вы можете сделать:

return 'true' if 'password' in (user['pw'] for user in users.itervalues()) else 'false' 
Смежные вопросы