Упрощая немного, вы можете представить, что map()
делает что-то вроде этого:
def mymap(func, lst):
result = []
for e in lst:
result.append(func(e))
return result
Как вы можете видеть, он принимает функцию и список и возвращает новый список с результатом применяя функцию к каждому из элементов во входном списке. Я сказал «упростить бит», потому что на самом деле map()
может обрабатывать более одного итеративного:
Если передаются дополнительные итеративные аргументы, функция должна принимать много аргументов и применяется к элементам из всех итераций параллельно. Если одно итерабельнее короче другого, предполагается, что он расширен с помощью элементов None.
blockquote>Для второй части вопроса: Какую роль это играет в создании декартова произведения? ну,
map()
можно было бы использовать для генерации декартова произведения такого списка:lst = [1, 2, 3, 4, 5] from operator import add reduce(add, map(lambda i: map(lambda j: (i, j), lst), lst))
... Но, честно говоря, используя
product()
является гораздо более простым и естественным способом решения проблемы:from itertools import product list(product(lst, lst))
В любом случае результатом является декартово произведение
lst
, как определено выше:[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5)]
Я думаю, что лучшее введение в (любой) предмет является некоторыми хорошими примерами.
Эта статья в codeProject дает довольно легкое для следования за безопасностью веб-сервиса канавки руководства для приложения.NET.
Я должен был дать мне интенсивный курс в безопасности WS несколько месяцев назад, вот несколько ссылок, которые я нашел полезным:
http://www.ibm.com/developerworks/webservices/library/ws-security.html
Можно найти некоторую хорошую статью о безопасности WS и Крепостном вале Apache - Реализации защиты WS с открытым исходным кодом - в Электронной библиотеке WSO2.
WSO2 WSF/PHP является расширением веб-сервисов PHP, которое имеет поддержку безопасности WS и также interops с веб-сервисами/клиентами.NET беспрепятственно.
Check Kirk Evans' blog as it deals with the .NET Framework 2.0+ instead of the old .NET Framework 1.0 linked by Sven.
The implementation on Evans' blog is backwards compatible with clients running .NET Frameowrk 1.0.