Форум сайта python.su
-1
Пробую по всякому, но не получается?
Как сделать правильно?
Офлайн
568
MiKДюже интересно посмотреть на пробы
Пробую по всякому
def dict_in_tuple(tpl): for i in tpl: if isinstance(i, dict): return True return False t = (1, 2, {1: 4}, 5) print dict_in_tuple(t)
Офлайн
857
>>> {} in (1, 2, 3) False >>> {} in (1, 2, 3, {}) True >>>
Офлайн
221
FishHook+1? покажите как вы пытались решить эту задачу
Дюже интересно посмотреть на пробы
Офлайн
-1
JOHN_16
Да вот примерно как py.user.next
только ещё через type(dict)
только это не работает
Можно, конечно решить через for или даже, возможно, с использованием генератора, но я думал, что есть способ проще.
Офлайн
-1
Если способа проще нет, то этот пожалуй будет более-менее оптимальным:
tup = ('g', '', 4, {3:3}) type(dict()) in [type(d) for d in tup]
Офлайн
-1
Или как можно взять способ как FishHook предложил:
if True in [isinstance(d, dict) for d in tup]:
Офлайн
568
MiKЕсли у нас кортеж на миллион итемов и первый же член - словарь. Оптимально перебирать весь миллион?
то этот пожалуй будет более-менее оптимальным:
Офлайн
568
MiKя такого не предлагал!!!!!!!!!
FishHook предложил:
Офлайн
-1
Ну ладно… Это уже не суть.
Офлайн