Форум сайта python.su
0
Есть словарь:
test = {'item1': None, 'item2': None, 'item3': None}
test = {'item1': 12, 'item2': 'Ivanov', 'item3': None}
Офлайн
0
Вот кое-что переделал:
if test['item1']: item_true = False for item in test: if item == 'item1': continue if test[item]: item_true = True break if not item_true: exit(1)
Офлайн
18
как то так можно
>>> def foo(dic,ignoreKey): ... return any( [ dic[key] for key in dic if key != ignoreKey ] ) >>> foo( {'item1': 12, ... 'item2': 'Ivanov', ... 'item3': None} , ... 'item1') True >>> foo( {'item1': 12, ... 'item2': 0, ... 'item3': None} , ... 'item1') False
Офлайн
568
k0st1anЧто значит “проверить”?
Нужно как-то проверить данные итемы в словаре на None
test = {'item1': None, 'item2': None, 'item3': None} result=any(x==None for x in test.values()) print result
Офлайн
0
FishHook Пусть код скажет за меня (это мой вариант):
if test['item1']: item_true = False for item in test: if item != 'item1': if test[item]: item_true = True break if not item_true: exit(1)
Офлайн
43
у тебя самого не учитывается
и один любой должен быть в не Noneи на сам None нигде ничего не сравнивается. Он не будет различать его с нулями, пустыми строками, списками и тд
FishHookis жеx==None
Офлайн
20
Какие-то финты ушами со словарем :) Может быть вам класс завести?
Офлайн
568
sergeekДа блин, я сейчас весь по уши в c#, прошу извинить если что
is же
Офлайн
47
А нужен ли тут словарь в первую очередь?
Офлайн
0
sergeek
Да у меня там и не должно быть пусто, в любом случае должно быть что-то. А ноль проверят, список, только пустую строку не проверяем:
>>> а = 0 >>> if a: ... print('yes') ... yes >>> a = '' >>> if a: ... print('yes') ... >>> a = [1, 4, 5, 6] >>> if a: ... print('yes') ... yes
Офлайн