Используйте any
:
print(any(isinstance(i,dict) for i in d.values()))
Первый словарь вернет:
True
Второй будет:
False
Для объяснения: [ 1121]
Идите и повторяйте значения d
.
Используйте isinstance
, чтобы проверить, является ли тип dict
или нет.
Используйте внешний any
, чтобы проверить, есть ли какие-либо элементы True
(являются словарями).
Вот, пожалуйста, это сработает.
Обновление: Я могу, конечно, понять. У Eric Lippert есть еще некоторые всесторонние сообщения.. Проверьте их.
Мне понравился ряд сообщений scottgu на новых функциях языка.. Еще некоторая информация здесь также http://www.danielmoth.com/Blog/2007/11/top-10-things-to-know-about-visual.html особенно раздел по функциям языка.
Существует "быстрый и грязный" список на моем C# подробно сайт (который является также немного языком в щеке):
Чтобы несколько ответить на сообщение Charles Graham у меня есть статья о том, насколько применимый функции языка при предназначении для.NET 2.0:
Так же, как явный разъем, если Вы интересуетесь языком, а не платформой, C# подробно о как близко к "языку только" книга, как я видел. Это также разделено на две части (после введения): новые возможности в C# 2 и новые возможности в C# 3.
У Scott Guthrie есть хорошая серия сообщений в блоге, которые описывают много улучшений. Прокрутите вниз к "Улучшениям языка и LINQ".
Лямбда-выражения
Анонимные типы
Автоматические Свойства и инициализаторы объекта/списка
Дополнительные методы
Синтаксис запроса
Проверьте учебное руководство Eric White на функциональное программирование в C# 3.0
Это - одна вещь, которую я конкретно хотел бы знать сам. Одна вещь, которую я могу сказать Вам, состоит в том, что много новых возможностей в C# 3.0 будет на самом деле работать в просто 2,0 приложениях, если Вы сделаете много предназначение в VS 2008. Я знаю, что дополнительные методы являются одной такой вещью.
Вот ряд статей, которые помогли мне понять новые функции быстро
http://blah.winsmarts.com/2006/05/19/demasting-c-30-- Часть-4-Lambda-espuretions.aspx