У меня есть код, который работает, но мне интересно, есть ли более питонский способ сделать это. У меня есть словарь, и я хочу посмотреть, если:
- ключ существует
- это значение не None (в данном случае NULL от SQL)
- это значение не просто кавычка (пусто?)
- это значение не только состоит из пробелов
Так что в моем коде ключи «a», «b» и «c» будут успешными, и это правильно.
import re
mydict = {
"a":"alpha",
"b":0,
"c":False,
"d":None,
"e":"",
"g":" ",
}
#a,b,c should succeed
for k in mydict.keys():
if k in mydict and mydict[k] is not None and not re.search("^\s*$", str(mydict[k])):
print(k)
else:
print("I am incomplete and sad")
То, что у меня есть выше, работает, но это похоже на ужасно длинный набор условий. Может быть, это просто правильное решение, но мне интересно, есть ли более питоническое «существует и имеет вещи» или лучший способ сделать это?
UPDATE
Спасибо всем за прекрасные ответы и вдумчивые комментарии. С некоторыми пунктами и советами я немного обновил вопрос, так как были некоторые условия, которых у меня не было, которые также должны быть успешными. Я также изменил пример на цикл (просто проще проверить?).