{"id":480193,"date":"2026-05-19T06:21:55","date_gmt":"2026-05-19T06:21:55","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=480193"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=480193","title":{"rendered":"\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c map, filter, reduce, any, all, zip \u0438 enumerate \u0432 Python"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 Python \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438 \u0446\u0438\u043a\u043b <code>for<\/code>, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 <code>if<\/code> \u0438 \u0434\u0435\u043b\u0430\u043b\u0438 <code>.append()<\/code>. \u042d\u0442\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e, \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e, \u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u041f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u043d\u0430\u0432\u044b\u043a\u0430 \u0438 \u043e\u0431\u044a\u0435\u043c\u0430 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0443\u0442\u043e\u043c\u043b\u044f\u0442\u044c \u2014 \u043c\u044b \u0442\u0440\u0430\u0442\u0438\u043c 4-5 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u0443 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Python \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438: <code><strong>map<\/strong><\/code>, <code><strong>filter<\/strong><\/code>, <code><strong>reduce<\/strong><\/code>, <code><strong>any<\/strong><\/code>, <code><strong>all<\/strong><\/code>, <code><strong>zip<\/strong><\/code> \u0438 <code><strong>enumerate<\/strong><\/code>.<\/p>\n<p>\u041d\u043e \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb.<\/p>\n<p><strong>\u041e \u0447\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043b\u0435\u043d\u0438\u0432\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (lazy evaluation) \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430 \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 short-circuiting (\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435) \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0434\u0443\u043a\u0442\u043e\u0440\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 <code>reduce<\/code> \u0432\u044b\u043a\u0438\u043d\u0443\u043b\u0438 \u0438\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c <code>functools<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438: \u0437\u0430\u043c\u0435\u0440\u0438\u043c <code>timeit<\/code> \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u043e\u0447\u043a\u0443 \u0432 \u0441\u043f\u043e\u0440\u0435 \u043e \u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u0449\u0438\u043d\u0443, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u043e\u0431\u0440\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (List\/Generator Comprehensions).<\/p>\n<\/li>\n<\/ul>\n<h2>\u0427\u0430\u0441\u0442\u044c 1. \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0434\u0443\u043a\u0442\u043e\u0440\u044b: any() \u0438 all()<\/h2>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u0438\u0441\u0442\u043e\u0442\u0443: \u0432\u0441\u0435 \u043c\u044b \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442:<\/p>\n<pre><code class=\"python\">def has_even_numbers(numbers: list[int]) -&gt; bool:    has_even = False    for num in numbers:        if num % 2 == 0:            has_even = True            break    return has_even<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0440\u0430\u0434\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u0412 Python \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>any()<\/code> \u0438 <code>all()<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u043e\u0434\u044f\u0442 \u044d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u043a \u043e\u0434\u043d\u043e\u0439 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0437\u044b\u043a\u0430 C.<\/p>\n<h4>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418 \/ \u0418\u041b\u0418<\/h4>\n<p>\u0412\u0441\u0451 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0431\u0443\u043b\u0435\u0432\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u0435:<\/p>\n<ul>\n<li>\n<p><code><strong>all(iterable)<\/strong><\/code> \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 <strong>\u0418<\/strong> (AND). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code> \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 <em>\u0432\u0441\u0435<\/em> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Python \u2014 \u00abtruthy\u00bb). \u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, <code>all()<\/code> \u0432\u0435\u0440\u043d\u0435\u0442 <code>True<\/code>.<\/p>\n<\/li>\n<li>\n<p><code><strong>any(iterable)<\/strong><\/code> \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 <strong>\u0418\u041b\u0418<\/strong> (OR). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code>, \u0435\u0441\u043b\u0438 <em>\u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d<\/em> \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0438\u043d\u0435\u043d. \u0414\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u0435\u0440\u043d\u0435\u0442 <code>False<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u043d\u0438 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043d\u0430\u0441 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0444\u043b\u0430\u0433\u0438-\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 <code>if\/break<\/code>.<\/p>\n<h4>\u00ab\u041b\u0435\u043d\u0438\u0432\u043e\u0441\u0442\u044c\u00bb (Short-circuiting): \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430<\/h4>\n<p>\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>any<\/code> \u0438 <code>all<\/code> \u2014 \u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <strong>\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (short-circuit evaluation)<\/strong>.<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e <code>any()<\/code> \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 <code>True<\/code>, \u043e\u043d \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e <code>all()<\/code> \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 <code>False<\/code>, \u043e\u043d \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442 \u0446\u0438\u043a\u043b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>False<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041d\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438:<\/strong> \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u043e CPU \u0438 \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u043d\u0443\u0442\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c <em>\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/em>, \u0430 \u043d\u0435 <em>\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 (List Comprehension)<\/em>.<\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443:<\/p>\n<pre><code class=\"python\"># \u274c \u041f\u041b\u041e\u0425\u041e: \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432,# \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c any() \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.result = any([x == 0 for x in range(1_000_000)])# \u2705 \u041e\u0422\u041b\u0418\u0427\u041d\u041e: \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a).# any() \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043f\u043e\u043b\u0443\u0447\u0438\u0442 True (\u0442\u0430\u043a \u043a\u0430\u043a 0 == 0) \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443.# \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 999 999 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b.result = any(x == 0 for x in range(1_000_000))<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0413\u0434\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f? \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0435\u0439\u0441 \u2014 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0444\u043e\u0440\u043c, \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 1: \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f<\/strong> \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0446\u0438\u0444\u0440\u0443 \u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0431\u0443\u043a\u0432\u0443. \u0412\u043c\u0435\u0441\u0442\u043e \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043e\u043a \u0438\u043b\u0438 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"python\">def is_strong_password(password: str) -&gt; bool:    # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043b\u0435\u043d\u0438\u0432\u043e, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438    has_digit = any(char.isdigit() for char in password)    has_upper = any(char.isupper() for char in password)        return has_digit and has_upperprint(is_strong_password(\"Qwerty123\"))  # True<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 2: \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0435\u0439<\/strong> \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b (\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u0440\u0430\u0432\u043d\u044b <code>None<\/code>, \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438\u043b\u0438 \u043d\u0443\u043b\u044e).<\/p>\n<pre><code class=\"python\">user_form = {    \"username\": \"admin\",    \"email\": \"admin@example.com\",    \"age\": 25,    \"bio\": \"\"  # \u041f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0441\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f Python \u043a\u0430\u043a False}# all() \u0434\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u043a\u043b\u044e\u0447\u0430 \"bio\", \u043f\u043e\u043b\u0443\u0447\u0438\u0442 False \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u0440\u0432\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443if not all(user_form.values()):    print(\"\u041e\u0448\u0438\u0431\u043a\u0430: \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e!\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>any<\/code> \u0438 <code>all<\/code> \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c: \u0432\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435, <em>\u0447\u0442\u043e<\/em> \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044f \u0437\u0430\u0431\u043e\u0442\u0443 \u043e \u0442\u043e\u043c, <em>\u043a\u0430\u043a<\/em> \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0446\u0438\u043a\u043b\u043e\u043c \u0438 \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0442\u044c <code>break<\/code>, \u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b Python.<\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 2. \u0422\u0440\u043e\u0438\u0446\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<h4>1. \u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: map()<\/h4>\n<p>\u0421\u043c\u044b\u0441\u043b <code>map<\/code> \u0437\u0430\u043b\u043e\u0436\u0435\u043d \u0432 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438: \u043e\u043d \u043f\u0440\u043e\u0435\u0446\u0438\u0440\u0443\u0435\u0442 (\u043c\u0430\u043f\u043f\u0438\u0442) \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0446\u0438\u043a\u043b\u0443, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a.<\/p>\n<p><strong>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/strong> <code>map(function, iterable)<\/code><\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 <em>\u0441\u0441\u044b\u043b\u043a\u0430<\/em> \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e (\u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a \u0432\u044b\u0437\u043e\u0432\u0430), \u0432\u0442\u043e\u0440\u044b\u043c \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<pre><code class=\"python\"># \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0442\u0440\u043e\u043a \u0432 \u0447\u0438\u0441\u043b\u0430strings = [\"10\", \"20\", \"30\"]numbers = map(int, strings)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Python 3: \u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 <code>print(numbers)<\/code>, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 <code>[10, 20, 30]<\/code> \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 <code>&lt;map object at 0x7f8b...&gt;<\/code>. \u0418 \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441 <code>map<\/code> \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 Python 2 \u043d\u0430 Python 3.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0440\u043e\u043c \u0434\u043e\u0431\u0440\u043e\u043c Python 2 <code>map<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u043b\u0438 \u0435\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0430 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a, \u043e\u043d \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u043b \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0447\u0438\u0441\u0435\u043b.<\/p>\n<p>\u0412 Python 3 <code>map<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong>\u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/strong>. \u041e\u043d \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043e\u043c. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0432\u044b\u0434\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0435\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0438\u0442\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043e\u0431\u0445\u043e\u0434\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 <code>for<\/code> \u0438\u043b\u0438 \u043f\u0440\u0438 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u0432 <code>list()<\/code>).<\/p>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438, <code>map<\/code> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0435 \u0432\u044b \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0442\u0440\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u043b\u043e\u0433-\u0444\u0430\u0439\u043b \u043d\u0430 50 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442.<\/p>\n<h3>\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0442\u0440\u044e\u043a: \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h3>\n<p>\u0427\u0430\u0441\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e <code>map<\/code> \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0446\u0435\u043d\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u043d\u0430\u043b\u043e\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c. \u0412\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code class=\"python\">import operatorprices = [1000, 2500, 3200]taxes = [150, 350, 480]discounts = [50, 100, 200]# \u0424\u0443\u043d\u043a\u0446\u0438\u044f operator.add \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430, # \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438 \u043b\u044f\u043c\u0431\u0434\u0443 \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432:final_prices = list(map(lambda p, t, d: p + t - d, prices, taxes, discounts))print(final_prices) # [1100, 2750, 3480]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441:<\/em> \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, <code>map<\/code> \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 (\u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <code>zip<\/code>).<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb: \u043f\u0438\u0448\u0435\u043c \u0441\u0432\u043e\u0439 map<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u044e \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0435\u043d\u0438\u0432\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432 <code>map<\/code>, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c Python \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 (<code>yield<\/code>).<\/p>\n<pre><code class=\"python\">def my_map(func, *iterables):    # zip \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439    for args in zip(*iterables):        # \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438 \u043e\u0442\u0434\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b\u0438        yield func(*args)# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u0448 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434prices = [100, 200]taxes = [15, 30]lazy_result = my_map(operator.add, prices, taxes)print(next(lazy_result)) # 115 (\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)print(next(lazy_result)) # 230 (\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>yield<\/code> \u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c. \u0412\u044b\u0437\u043e\u0432 <code>func(*args)<\/code> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0440\u0430\u0437\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 <code>next()<\/code> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>list()<\/code> \u0438\u043b\u0438 \u0446\u0438\u043a\u043b\u0430 <code>for<\/code>). \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0441\u0443\u0442\u044c \u043b\u0435\u043d\u0438\u0432\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<h4>2. \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: filter()<\/h4>\n<p>\u0415\u0441\u043b\u0438 <code>map<\/code> \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e <code>filter<\/code> \u043e\u0442\u0441\u0435\u043a\u0430\u0435\u0442 \u043c\u0443\u0441\u043e\u0440. \u041f\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 Python 3 \u043e\u043d \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d <code>map<\/code>: \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044f <img decoding=\"async\" class=\"formula inline\" source=\"O(1)\" alt=\"O(1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg\" width=\"32\" height=\"16\" data-width=\"4.618\" data-height=\"2.262\" data-vertical-align=\"-0.566\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/5e\/5e0\/5e079a28737d5dd019a3b8f6133ee55e.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430.<\/p>\n<p><strong>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/strong> <code>filter(function, iterable)<\/code><\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f-\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442. \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>True<\/code> (\u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0435 \u00abtruthy\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435) \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435, \u0438 <code>False<\/code> (\u0438\u043b\u0438 \u00abfalsy\u00bb) \u0434\u043b\u044f \u0442\u0435\u0445, \u0447\u0442\u043e \u0438\u0434\u0443\u0442 \u043f\u043e\u0434 \u043d\u043e\u0436.<\/p>\n<pre><code class=\"python\"># \u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u0438: \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043a\u0438logs = [\"INFO: start\", \"ERROR: db crash\", \"DEBUG: init\", \"ERROR: timeout\"]errors = filter(lambda line: line.startswith(\"ERROR\"), logs)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0421 None (\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445)<\/h3>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u044b\u0439, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0440\u0435\u0434\u043a\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c\u044b\u0439 \u0432 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u044e\u0437\u043a\u0435\u0439\u0441 <code>filter<\/code> \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 <code>None<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438-\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c <code>None<\/code>, <code>filter<\/code> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u044c. \u041e\u043d \u0431\u0435\u0437\u0436\u0430\u043b\u043e\u0441\u0442\u043d\u043e \u0432\u044b\u043a\u043e\u0441\u0438\u0442 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432 Python \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043b\u0436\u0438: <code>0<\/code>, <code>False<\/code>, \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 <code>\"\"<\/code>, \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 <code>[]<\/code>, \u0441\u043b\u043e\u0432\u0430\u0440\u0438 <code>{}<\/code> \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0441\u0430\u043c <code>None<\/code>.<\/p>\n<p>\u042d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u00ab\u0433\u0440\u044f\u0437\u043d\u044b\u0445\u00bb \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u043a\u0440\u0438\u0432\u043e\u0439 CSV \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e API:<\/p>\n<pre><code class=\"python\"># \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043c\u0435\u0441\u0438\u0432\u043e \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445dirty_data = [\"apple\", \"\", None, \"banana\", 0, False, \"cherry\", []]# \u0412 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432clean_data = list(filter(None, dirty_data))print(clean_data) # \u0412\u044b\u0432\u043e\u0434: ['apple', 'banana', 'cherry']<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u0435\u0435, \u0447\u0435\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e\u0435 <code>[x for x in dirty_data if x]<\/code>. \u041d\u043e \u0440\u0430\u0437 \u0443\u0436 \u043c\u044b \u0437\u0430\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b\u2026<\/p>\n<h3>\u0425\u043e\u043b\u0438\u0432\u0430\u0440: filter() \u043f\u0440\u043e\u0442\u0438\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (List Comprehensions)<\/h3>\n<p>\u0427\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c: <code>filter<\/code> \u0438\u043b\u0438 <code>if<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 list comprehension? \u041e\u0442\u0432\u0435\u0442 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 CPython. \u0412 Python \u0432\u044b\u0437\u043e\u0432 \u043b\u044e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (overhead \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0440\u0435\u0439\u043c\u0430 \u0441\u0442\u0435\u043a\u0430) \u2014 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u0430\u043b\u044c\u0446\u0430:<\/strong><\/p>\n<ol>\n<li>\n<p><strong>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 <\/strong><code><strong>lambda<\/strong><\/code><strong> \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440.<\/strong> \u0412\u044b\u0437\u043e\u0432 \u043b\u044f\u043c\u0431\u0434\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 <code>filter<\/code> \u0441\u043e\u0436\u0440\u0435\u0442 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u043d \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\"># \u274c \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0438 \u0445\u0443\u0436\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044fevens = filter(lambda x: x % 2 == 0, numbers)# \u2705 \u0411\u042b\u0421\u0422\u0420\u0415\u0415 \u0418 \u0427\u0418\u0422\u0410\u0415\u041c\u0415\u0415 (\u0432\u044b\u0431\u043e\u0440 PEP 8)evens = [x for x in numbers if x % 2 == 0] <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ol start=\"2\">\n<li>\n<p><strong>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e C-\u0443\u0440\u043e\u0432\u043d\u044f (built-in) \u2014 \u0431\u0435\u0440\u0438\u0442\u0435 <\/strong><code><strong>filter<\/strong><\/code><strong>.<\/strong> \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0441\u0442\u0440\u043e\u043a (\u0432\u0440\u043e\u0434\u0435 <code>str.isdigit<\/code> \u0438\u043b\u0438 <code>str.isupper<\/code>), \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043b\u0438 <code>None<\/code>, <code>filter<\/code> \u043f\u043e\u0440\u0432\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043f\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0437\u044b\u043a\u0430 C, \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 Python \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">    strings = [\"123\", \"a\", \"45\", \"b\"]    # \u2705 \u0411\u042b\u0421\u0422\u0420\u0415\u0415 (\u0446\u0438\u043a\u043b \u0438\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 C)    numbers = filter(str.isdigit, strings)     # \u274c \u0427\u0443\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 (\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u0430\u0439\u0442\u043a\u043e\u0434 Python \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438)    numbers = [s for s in strings if s.isdigit()]     ```\u0412\u044b\u0432\u043e\u0434 \u043f\u0440\u043e\u0441\u0442\u043e\u0439: `filter` \u0438\u0434\u0435\u0430\u043b\u0435\u043d \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 `None` \u0438\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u0421\u0438\u0448\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438. \u0412\u043e \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0414\u0437\u0435\u043d \u041f\u0438\u0442\u043e\u043d\u0430 \u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>3. \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0446\u0438\u044f: reduce()<\/h4>\n<p>\u0415\u0441\u043b\u0438 <code>map<\/code> \u0438 <code>filter<\/code> \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430, \u0442\u043e <code>reduce<\/code> \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u0441\u0445\u043b\u043e\u043f\u044b\u0432\u0430\u044f (\u0440\u0435\u0434\u0443\u0446\u0438\u0440\u0443\u044f) \u0432\u0441\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0432 \u043e\u0434\u043d\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430: \u0418\u0437\u0433\u043d\u0430\u043d\u0438\u0435 \u0432 functools<\/h3>\n<p>\u0412 Python 2 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>reduce<\/code> \u0431\u044b\u043b\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 (built-in), \u043a\u0430\u043a <code>map<\/code> \u0438 <code>filter<\/code>. \u041d\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 Python 3 \u0413\u0432\u0438\u0434\u043e \u0432\u0430\u043d \u0420\u043e\u0441\u0441\u0443\u043c \u043f\u0440\u0438\u043d\u044f\u043b \u0432\u043e\u043b\u0435\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u0435\u0451 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441\u0430 \u0438 \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0432 \u043c\u043e\u0434\u0443\u043b\u044c <code>functools<\/code>.<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443? \u0413\u0432\u0438\u0434\u043e \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u0432 99% \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>reduce<\/code> \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u043d\u0435\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c, \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b <code>for<\/code> \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439-\u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u043b\u044e\u0431\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 \u0432\u0430\u0441. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u043b\u0438\u0448\u044c \u0441\u0430\u043c\u044b\u0435 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u043e\u0434\u0435 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>sum()<\/code>). \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, <code>reduce<\/code> \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043c\u043e\u0449\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0432 \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<h3>\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440<\/h3>\n<p>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: <code>reduce(function, iterable, [initial])<\/code><\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u0432 <code>reduce<\/code>, \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c <strong>\u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430<\/strong>:<\/p>\n<ol>\n<li>\n<p><strong>\u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (<\/strong><code><strong>acc<\/strong><\/code><strong>)<\/strong> \u2014 \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (<\/strong><code><strong>x<\/strong><\/code><strong>)<\/strong> \u2014 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 <code>[1, 2, 3, 4]<\/code>.<\/p>\n<pre><code class=\"python\">from functools import reducenumbers = [1, 2, 3, 4]result = reduce(lambda acc, x: acc * x, numbers)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c (\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439):<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0433<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 (<code>acc<\/code>)<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (<code>x<\/code>)<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 (<code>acc * x<\/code>)<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u043e\u0432\u044b\u0439 \u0410\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>1<\/code> <em>(\u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2<\/code> <em>(\u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>1 * 2<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>2<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>3<\/code> <em>(\u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2 * 3<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>6<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>3<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>6<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>4<\/code> <em>(\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)<\/em><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>6 * 4<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code><strong>24<\/strong><\/code> (\u0418\u0442\u043e\u0433)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:<\/em> \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0448\u0430\u0433\u0435 <code>reduce<\/code> \u0431\u0435\u0440\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 <em>\u0434\u0432\u0430<\/em> \u043f\u0435\u0440\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h3>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (initial): \u0421\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u043e\u0442 TypeError<\/h3>\n<p>\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 <code>reduce<\/code> \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a?<\/p>\n<pre><code class=\"python\"># \u274c \u0423\u043f\u0430\u0434\u0435\u0442 \u0441 TypeError: reduce() of empty sequence with no initial valuereduce(lambda acc, x: acc * x, []) <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043a\u043e\u0434 \u043d\u0435 \u043f\u0430\u0434\u0430\u043b \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u043d\u0430 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0443 <code>reduce<\/code> \u0435\u0441\u0442\u044c \u0442\u0440\u0435\u0442\u0438\u0439, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 <code>initial<\/code> (\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435). \u0415\u0441\u043b\u0438 \u043e\u043d \u0437\u0430\u0434\u0430\u043d, <code>reduce<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043c \u0448\u0430\u0433\u0435, \u0430 <code>x<\/code> \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<pre><code class=\"python\"># \u2705 \u0412\u0435\u0440\u043d\u0435\u0442 1 (\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435), \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0441\u0442reduce(lambda acc, x: acc * x, [], 1) <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0442\u043e\u043d\u0430: \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u043d\u0430 100%, \u0447\u0442\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u0443\u0441\u0442\u0430, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 <code>initial<\/code>. \u0414\u043b\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e <code>0<\/code>, \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u2014 <code>1<\/code>, \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u2014 <code>[]<\/code>.<\/p>\n<h3>\u0421\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u043a\u0438: reduce + operator<\/h3>\n<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043c\u0430\u0433\u0438\u044f <code>reduce<\/code> \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c <code>operator<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0421\u0438-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u043b\u044f\u043c\u0431\u0434.<\/p>\n<p><strong>1. \u041f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0447\u0438\u0441\u0435\u043b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (\u0430\u043d\u0430\u043b\u043e\u0433 <\/strong><code><strong>sum<\/strong><\/code><strong>, \u043d\u043e \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f):<\/strong><\/p>\n<pre><code class=\"python\">import operatorfrom functools import reducenumbers = [1, 2, 3, 4, 5]# \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c lambda acc, x: acc * xproduct = reduce(operator.mul, numbers, 1) <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>2. \u0413\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 (Deep dict lookup):<\/strong><\/p>\n<p>\u0427\u0430\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430: \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 JSON\/\u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0438 \u0435\u0441\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e \u0438\u043b\u0438 \u0446\u0438\u043a\u043b <code>for<\/code>? \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439.<\/p>\n<pre><code class=\"python\">import operatorfrom functools import reducedata = {    \"user\": {        \"profile\": {            \"settings\": {                \"theme\": \"dark\"            }        }    }}path = [\"user\", \"profile\", \"settings\", \"theme\"]# operator.getitem(a, b) \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e a[b]theme = reduce(operator.getitem, path, data)print(theme) # \u0412\u044b\u0432\u043e\u0434: 'dark'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <code>reduce<\/code> \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u201c\u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u201d \u0432\u0433\u043b\u0443\u0431\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044f: <code>data[\"user\"]<\/code> -&gt; <code>[\"profile\"]<\/code> -&gt; <code>[\"settings\"]<\/code> -&gt; <code>[\"theme\"]<\/code>. \u042d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u0445 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>reduce<\/code> \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d-\u043a\u043e\u0434\u0435.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 3. \u0412\u0435\u0440\u043d\u044b\u0435 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0438: zip() \u0438 enumerate()<\/h3>\n<p>\u0427\u0430\u0441\u0442\u043e, \u0434\u0430\u0436\u0435 \u0437\u043d\u0430\u044f \u043f\u0440\u043e <code>map<\/code> \u0438 <code>for<\/code>, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u0441\u0442\u044b\u043b\u0438, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043e\u0431\u043e\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u0412 Python \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043c\u043e\u0449\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u043b\u0435\u043d\u0438\u0432\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b).<\/p>\n<h4>enumerate(): \u041f\u0440\u043e\u0449\u0430\u0439, i = 0 \u0438 i += 1<\/h4>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 Python \u0438\u0437 C++ \u0438\u043b\u0438 Java \u2014 \u044d\u0442\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0447\u0435\u0440\u0435\u0437 <code>range(len(...))<\/code>.<\/p>\n<pre><code class=\"python\"># \u274c \u041f\u041b\u041e\u0425\u041e: \u041d\u0435-Pythonic \u0441\u0442\u0438\u043b\u044c (C-style)users = [\"Alice\", \"Bob\", \"Charlie\"]for i in range(len(users)):    print(f\"ID {i}: {users[i]}\")# \u274c \u041f\u041b\u041e\u0425\u041e: \u0420\u0443\u0447\u043d\u043e\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043ai = 0for user in users:    print(f\"ID {i}: {user}\")    i += 1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0443\u043c. \u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>enumerate()<\/code> \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e: \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u043d\u0430 \u043e\u0442\u0434\u0430\u0435\u0442 \u043a\u043e\u0440\u0442\u0435\u0436 \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u2014 <code>(\u0438\u043d\u0434\u0435\u043a\u0441, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435)<\/code>.<\/p>\n<pre><code class=\"python\"># \u2705 \u041e\u0422\u041b\u0418\u0427\u041d\u041e: \u0418\u0434\u0438\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u044b\u0439 Pythonusers = [\"Alice\", \"Bob\", \"Charlie\"]for i, user in enumerate(users):    print(f\"ID {i}: {user}\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0442\u0440\u044e\u043a:<\/strong> \u0423 <code>enumerate<\/code> \u0435\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439, \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>start<\/code>. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430. \u042d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0433\u0434\u0435 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 1, \u0430 \u043d\u0435 \u0441 0):<\/p>\n<pre><code class=\"python\">for rank, user in enumerate(users, start=1):    print(f\"\u041c\u0435\u0441\u0442\u043e #{rank}: {user}\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>zip(): \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e \u043d\u0438\u043c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0440\u0443\u043a\u0430 \u0442\u044f\u043d\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c. \u0418 \u0441\u043d\u043e\u0432\u0430 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<p><code>zip()<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043a \u0437\u0430\u0441\u0442\u0435\u0436\u043a\u0430-\u043c\u043e\u043b\u043d\u0438\u044f \u043d\u0430 \u043a\u0443\u0440\u0442\u043a\u0435: \u043e\u043d \u0431\u0435\u0440\u0435\u0442 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043a\u043e\u0440\u0442\u0435\u0436.<\/p>\n<pre><code class=\"python\">names = [\"Alice\", \"Bob\", \"Charlie\"]salaries = [150_000, 180_000, 200_000]# \u2705 \u042d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u0430\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044ffor name, salary in zip(names, salaries):    print(f\"{name} \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 {salary}\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0446\u0438\u043a\u043b\u043e\u0432, <code>zip()<\/code> \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432:<\/p>\n<pre><code class=\"python\">user_salaries = dict(zip(names, salaries))<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: \u043e\u0431\u0440\u0435\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 <code>zip()<\/code> \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043b\u043e\u0432\u0443\u0448\u043a\u0430, \u043e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0430\u0442\u0430-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u044b. <code><strong>zip<\/strong><\/code><strong> \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c\u0443 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443.<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 100 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c 99, <code>zip<\/code> \u043c\u043e\u043b\u0447\u0430 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442 \u0441\u043e\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0438 \u0432\u044b \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u0436\u0435 \u043d\u0435 \u0443\u0437\u043d\u0430\u0435\u0442\u0435 (\u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0432\u044b\u0431\u0440\u043e\u0448\u0435\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442).<\/p>\n<pre><code class=\"python\">names = [\"Alice\", \"Bob\", \"Charlie\", \"David\"] # 4 \u0438\u043c\u0435\u043d\u0438salaries = [150_000, 180_000]                # 2 \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b# David \u0438 Charlie \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u0447\u0435\u0437\u043d\u0443\u0442 \u0438\u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430print(list(zip(names, salaries))) # [('Alice', 150000), ('Bob', 180000)]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0421\u043f\u0430\u0441\u0435\u043d\u0438\u0435: itertools.zip_longest()<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0430 \u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <code>itertools<\/code> \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>zip_longest()<\/code>.<\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u0440\u0435\u0437\u043a\u0438 \u043e\u043d\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <code>fillvalue<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>None<\/code>).<\/p>\n<pre><code class=\"python\">from itertools import zip_longestnames = [\"Alice\", \"Bob\", \"Charlie\"]salaries = [150_000]# \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432\u0441\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c 'N\/A'result = list(zip_longest(names, salaries, fillvalue=\"N\/A\"))print(result)# [('Alice', 150000), ('Bob', 'N\/A'), ('Charlie', 'N\/A')]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0411\u043e\u043d\u0443\u0441:<\/em> \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Python 3.10 \u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>zip<\/code> \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u043b\u0430\u0433 <code>strict=True<\/code>. \u041f\u0440\u0438 <code>zip(a, b, strict=True)<\/code> \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442 <code>ValueError<\/code>, \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u044b \u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438. \u042d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u043e\u0442 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u0431\u0430\u0433\u043e\u0432 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 4. \u0425\u043e\u043b\u0438\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430: Built-ins vs List Comprehensions (\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432)<\/h3>\n<p>\u0412 \u043c\u0438\u0440\u0435 Python \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0430\u0432\u043d\u0438\u0439 \u0441\u043f\u043e\u0440: \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (<code>map<\/code>, <code>filter<\/code>) \u0438\u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (List Comprehensions)?<\/p>\n<p>\u0413\u0432\u0438\u0434\u043e \u0432\u0430\u043d \u0420\u043e\u0441\u0441\u0443\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043a\u043e\u043c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u044d\u0442\u043e\u0442 \u0445\u043e\u043b\u0438\u0432\u0430\u0440 \u0441 \u0434\u0432\u0443\u0445 \u0441\u0442\u043e\u0440\u043e\u043d: \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438 \u0441\u0443\u0445\u0438\u0435 \u0446\u0438\u0444\u0440\u044b \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u043e\u0432.<\/p>\n<h4>\u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c (\u0414\u0437\u0435\u043d \u041f\u0430\u0439\u0442\u043e\u043d\u0430)<\/h4>\n<p>\u0414\u0437\u0435\u043d \u041f\u0438\u0442\u043e\u043d\u0430 \u0433\u043b\u0430\u0441\u0438\u0442: <em>\u00abFlat is better than nested\u00bb<\/em> (\u041f\u043b\u043e\u0441\u043a\u043e\u0435 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435) \u0438 <em>\u00abReadability counts\u00bb<\/em> (\u0427\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435).<\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b, \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0442\u043d\u044b\u0435 \u0438 \u0432\u043e\u0437\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442. \u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430:<\/p>\n<pre><code class=\"python\">nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# \u274c \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c (\u043f\u043b\u043e\u0445\u043e \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f)result = list(map(lambda x: x**2, filter(lambda x: x % 2 == 0, nums)))# \u2705 Pythonic \u0441\u0442\u0438\u043b\u044c (\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430)result = [x**2 for x in nums if x % 2 == 0]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434 \u00ab\u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0440\u0443\u0436\u0443\u00bb, \u043f\u0440\u043e\u0434\u0438\u0440\u0430\u044f\u0441\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u043e\u0431\u043a\u0438 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0443\u043c \u043e\u0442 <code>lambda<\/code>. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0434 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435: <em>\u00ab\u041a\u0432\u0430\u0434\u0440\u0430\u0442 \u0438\u043a\u0441\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043a\u0441\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0447\u0438\u0441\u0435\u043b, \u0435\u0441\u043b\u0438 \u0438\u043a\u0441 \u0447\u0435\u0442\u043d\u044b\u0439\u00bb<\/em>.<\/p>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b, List Comprehensions \u0431\u0435\u0437\u043e\u0433\u043e\u0432\u043e\u0440\u043e\u0447\u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u044e\u0442. \u041d\u043e \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438?<\/p>\n<h4>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u041c\u043e\u0434\u0443\u043b\u044c timeit)<\/h4>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u0440\u0438\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f <code>timeit<\/code>. \u041c\u044b \u043f\u0440\u043e\u0433\u043e\u043d\u0438\u043c \u0434\u0432\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u043f\u043e 1 000 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445 \u0438\u0437 10 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<h3>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 1: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0421\u0438\u0448\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (\u041f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442 map)<\/h3>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u043e\u043a \u043a \u043d\u0438\u0436\u043d\u0435\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443. \u0412 \u044d\u0442\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 <code>map<\/code> \u043c\u0435\u0442\u043e\u0434 <code>str.lower<\/code>, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 C.<\/p>\n<pre><code class=\"python\">import timeitsetup = \"strings = ['Habr Python'] * 10000\"# \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c maptime_map = timeit.timeit(    \"list(map(str.lower, strings))\",     setup=setup, number=1000)# \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c List Comprehensiontime_comp = timeit.timeit(    \"[s.lower() for s in strings]\",     setup=setup, number=1000)print(f\"map: {time_map:.3f} \u0441\u0435\u043a.\")print(f\"list comp: {time_comp:.3f} \u0441\u0435\u043a.\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0432\u043e\u0434\u0430:<\/strong><\/p>\n<pre><code>map: 0.420 \u0441\u0435\u043a.list comp: 0.650 \u0441\u0435\u043a.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 <\/strong><code><strong>map<\/strong><\/code><strong> \u0431\u044b\u0441\u0442\u0440\u0435\u0435?<\/strong> \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e C-\u0443\u0440\u043e\u0432\u043d\u044f \u0432 <code>map<\/code>, \u0432\u0435\u0441\u044c \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0437\u044b\u043a\u0430 C. \u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u0443 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. \u0412 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0435 \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <code>s.lower()<\/code> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 Python \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435, \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u043e\u0432\u0435\u0440\u0445\u0435\u0434.<\/p>\n<h3>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 2: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 lambda (\u041f\u043e\u0431\u0435\u0436\u0434\u0430\u044e\u0442 \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b)<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u043e\u0437\u0432\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442. \u0413\u043e\u0442\u043e\u0432\u043e\u0439 \u0421\u0438\u0448\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f <code>map<\/code> \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>lambda<\/code>.<\/p>\n<pre><code class=\"python\">setup_nums = \"nums = list(range(10000))\"# \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c map + lambdatime_map_lambda = timeit.timeit(    \"list(map(lambda x: x**2, nums))\",     setup=setup_nums, number=1000)# \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c List Comprehensiontime_comp_math = timeit.timeit(    \"[x**2 for x in nums]\",     setup=setup_nums, number=1000)print(f\"map + lambda: {time_map_lambda:.3f} \u0441\u0435\u043a.\")print(f\"list comp: {time_comp_math:.3f} \u0441\u0435\u043a.\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0432\u043e\u0434\u0430:<\/strong><\/p>\n<pre><code>map + lambda: 2.150 \u0441\u0435\u043a.list comp: 1.820 \u0441\u0435\u043a.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u043e\u0447\u0435\u043c\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0431\u044b\u0441\u0442\u0440\u0435\u0435?<\/strong> \u0412 Python \u0432\u044b\u0437\u043e\u0432 \u043b\u044e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u041a\u043e\u0433\u0434\u0430 <code>map<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <code>lambda<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 10 000 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439; \u043e\u043d \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <code>x2<\/code> \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u00ab\u043f\u0440\u043e\u043f\u0438\u0441\u043a\u0438\u00bb (inline), \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u044f\u0441\u044c \u043e\u0442 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432\u044b.<\/p>\n<h4>\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u0440\u0435\u0437\u044e\u043c\u0435 (\u0427\u0435\u043a-\u043b\u0438\u0441\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430)<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u043e\u0434-\u0440\u0435\u0432\u044c\u044e, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0435\u0431\u0435 \u044d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439:<\/p>\n<ol>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435\/\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435?  \u0411\u0435\u0440\u0435\u043c <code><strong>all()<\/strong><\/code><strong> \/ <\/strong><code><strong>any()<\/strong><\/code> \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e (C-\u0443\u0440\u043e\u0432\u043d\u044f) \u0432\u0440\u043e\u0434\u0435 <code>len<\/code>, <code>int<\/code>, <code>str.lower<\/code>?  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code><strong>map()<\/strong><\/code>. \u042d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442 \u043d\u0443\u043b\u0435\u0439, <code>None<\/code> \u0438 \u043f\u0443\u0441\u0442\u044b\u0445 \u0441\u0442\u0440\u043e\u043a?  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code><strong>filter(None, data)<\/strong><\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u0438\u043b\u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e?  \u0417\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e <code>lambda<\/code> \u0438 \u043f\u0438\u0448\u0435\u043c <strong>List\/Generator Comprehensions<\/strong>. \u042d\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u043c\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u0441\u0445\u043b\u043e\u043f\u043d\u0443\u0442\u044c \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b?  \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c <code><strong>reduce()<\/strong><\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043e\u043d\u0441\u044b \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u0438\u0445 \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 <a href=\"https:\/\/t.me\/+NlTdqmVuBkIzMDBi\" rel=\"noopener noreferrer nofollow\"><strong>\u043c\u043e\u0451\u043c Telegram-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435<\/strong><\/a>. \u0421\u043c\u0435\u043b\u043e \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a, \u2014 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 Python \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u043c \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u043c, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0447\u0435\u0442\u043a\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1036696\/\">https:\/\/habr.com\/ru\/articles\/1036696\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0435 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 Python \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438 \u0446\u0438\u043a\u043b for, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 if \u0438 \u0434\u0435\u043b\u0430\u043b\u0438 .append(). \u042d\u0442\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e, \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e, \u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u041f\u043e \u043c\u0435\u0440\u0435 \u0440\u043e\u0441\u0442\u0430 \u043d\u0430\u0432\u044b\u043a\u0430 \u0438 \u043e\u0431\u044a\u0435\u043c\u0430 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0443\u0442\u043e\u043c\u043b\u044f\u0442\u044c \u2014 \u043c\u044b \u0442\u0440\u0430\u0442\u0438\u043c 4-5 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u0443 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Python \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438: map, filter, reduce, any, all, zip \u0438 enumerate.\u041d\u043e \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb.\u041e \u0447\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c:\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043b\u0435\u043d\u0438\u0432\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (lazy evaluation) \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430 \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 short-circuiting (\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435) \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0434\u0443\u043a\u0442\u043e\u0440\u0430\u0445.\u041f\u043e\u0447\u0435\u043c\u0443 reduce \u0432\u044b\u043a\u0438\u043d\u0443\u043b\u0438 \u0438\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043c\u043e\u0434\u0443\u043b\u044c functools.\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438: \u0437\u0430\u043c\u0435\u0440\u0438\u043c timeit \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u043e\u0447\u043a\u0443 \u0432 \u0441\u043f\u043e\u0440\u0435 \u043e \u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u0449\u0438\u043d\u0443, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u043e\u0431\u0440\u044b\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (List\/Generator Comprehensions).\u0427\u0430\u0441\u0442\u044c 1. \u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0434\u0443\u043a\u0442\u043e\u0440\u044b: any() \u0438 all()\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u0438\u0441\u0442\u043e\u0442\u0443: \u0432\u0441\u0435 \u043c\u044b \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442:def has_even_numbers(numbers: list[int]) -&gt; bool:    has_even = False    for num in numbers:        if num % 2 == 0:            has_even = True            break    return has_even\u041f\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0440\u0430\u0434\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u0412 Python \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 any() \u0438 all(), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u043e\u0434\u044f\u0442 \u044d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u043a \u043e\u0434\u043d\u043e\u0439 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0437\u044b\u043a\u0430 C.\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418 \/ \u0418\u041b\u0418\u0412\u0441\u0451 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0431\u0443\u043b\u0435\u0432\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u0435:all(iterable) \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418 (AND). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 True \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 Python \u2014 \u00abtruthy\u00bb). \u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, all() \u0432\u0435\u0440\u043d\u0435\u0442 True.any(iterable) \u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418\u041b\u0418 (OR). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 True, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0438\u043d\u0435\u043d. \u0414\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u0435\u0440\u043d\u0435\u0442 False.\u041e\u043d\u0438 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043d\u0430\u0441 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0444\u043b\u0430\u0433\u0438-\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438 if\/break.\u00ab\u041b\u0435\u043d\u0438\u0432\u043e\u0441\u0442\u044c\u00bb (Short-circuiting): \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 any \u0438 all \u2014 \u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0434\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (short-circuit evaluation).\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e any() \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 True, \u043e\u043d \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 True.\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e all() \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 False, \u043e\u043d \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442 \u0446\u0438\u043a\u043b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 False.\u041d\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u043e CPU \u0438 \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u043d\u0443\u0442\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 (List Comprehension).\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443:# \u274c \u041f\u041b\u041e\u0425\u041e: \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432,# \u0446\u0438\u043a\u043b \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c any() \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.result = any([x == 0 for x in range(1_000_000)])# \u2705 \u041e\u0422\u041b\u0418\u0427\u041d\u041e: \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a).# any() \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043f\u043e\u043b\u0443\u0447\u0438\u0442 True (\u0442\u0430\u043a \u043a\u0430\u043a 0 == 0) \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443.# \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 999 999 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b.result = any(x == 0 for x in range(1_000_000))\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445\u0413\u0434\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f? \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0435\u0439\u0441 \u2014 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0444\u043e\u0440\u043c, \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.\u041f\u0440\u0438\u043c\u0435\u0440 1: \u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0446\u0438\u0444\u0440\u0443 \u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0431\u0443\u043a\u0432\u0443. \u0412\u043c\u0435\u0441\u0442\u043e \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043e\u043a \u0438\u043b\u0438 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434:def is_strong_password(password: str) -&gt; bool:    # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043b\u0435\u043d\u0438\u0432\u043e, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f\u0441\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438    has_digit = any(char.isdigit() for char in password)    has_upper = any(char.isupper() for char in password)        return has_digit and has_upperprint(is_strong_password(&#171;Qwerty123&#187;))  # True\u041f\u0440\u0438\u043c\u0435\u0440 2: \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0435\u0439 \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b (\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u0440\u0430\u0432\u043d\u044b None, \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435, \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438\u043b\u0438 \u043d\u0443\u043b\u044e).user_form = {    &#171;username&#187;: &#171;admin&#187;,    &#171;email&#187;: &#171;admin@example.com&#187;,    &#171;age&#187;: 25,    &#171;bio&#187;: &#171;&#187;  # \u041f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0441\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f Python \u043a\u0430\u043a False}# all() \u0434\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u043a\u043b\u044e\u0447\u0430 &#171;bio&#187;, \u043f\u043e\u043b\u0443\u0447\u0438\u0442 False \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u0440\u0432\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443if not all(user_form.values()):    print(&#171;\u041e\u0448\u0438\u0431\u043a\u0430: \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e!&#187;)\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 any \u0438 all \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c: \u0432\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044f \u0437\u0430\u0431\u043e\u0442\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0446\u0438\u043a\u043b\u043e\u043c \u0438 \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0442\u044c break, \u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b Python.\u0427\u0430\u0441\u0442\u044c 2. \u0422\u0440\u043e\u0438\u0446\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f1. \u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: map()\u0421\u043c\u044b\u0441\u043b map \u0437\u0430\u043b\u043e\u0436\u0435\u043d \u0432 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438: \u043e\u043d \u043f\u0440\u043e\u0435\u0446\u0438\u0440\u0443\u0435\u0442 (\u043c\u0430\u043f\u043f\u0438\u0442) \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0446\u0438\u043a\u043b\u0443, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a.\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: map(function, iterable)\u041f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e (\u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a \u0432\u044b\u0437\u043e\u0432\u0430), \u0432\u0442\u043e\u0440\u044b\u043c \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.# \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0442\u0440\u043e\u043a \u0432 \u0447\u0438\u0441\u043b\u0430strings = [&#171;10&#187;, &#171;20&#187;, &#171;30&#187;]numbers = map(int, strings)\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Python 3: \u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 print(numbers), \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 [10, 20, 30] \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 &lt;map object at 0x7f8b&#8230;&gt;. \u0418 \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441 map \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 Python 2 \u043d\u0430 Python 3.\u0412 \u0441\u0442\u0430\u0440\u043e\u043c \u0434\u043e\u0431\u0440\u043e\u043c Python 2 map \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0440\u043c\u043b\u0438\u0432\u0430\u043b\u0438 \u0435\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0430 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a, \u043e\u043d \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u043b \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0447\u0438\u0441\u0435\u043b.\u0412 Python 3 map \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u041e\u043d \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043e\u043c. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0432\u044b\u0434\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0435\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0438\u0442\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043e\u0431\u0445\u043e\u0434\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 for \u0438\u043b\u0438 \u043f\u0440\u0438 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u0432 list()).\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438, map \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442  \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0435 \u0432\u044b \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0442\u0440\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u043b\u043e\u0433-\u0444\u0430\u0439\u043b \u043d\u0430 50 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442.\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0442\u0440\u044e\u043a: \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\u0427\u0430\u0441\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e map \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0446\u0435\u043d\u044b \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u043d\u0430\u043b\u043e\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c. \u0412\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432:import operatorprices = [1000, 2500, 3200]taxes = [150, 350, 480]discounts = [50, 100, 200]# \u0424\u0443\u043d\u043a\u0446\u0438\u044f operator.add \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430, # \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438 \u043b\u044f\u043c\u0431\u0434\u0443 \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432:final_prices = list(map(lambda p, t, d: p + t &#8212; d, prices, taxes, discounts))print(final_prices) # [1100, 2750, 3480]\u0412\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, map \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 (\u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 zip).\u041f\u0440\u0438\u043c\u0435\u0440 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb: \u043f\u0438\u0448\u0435\u043c \u0441\u0432\u043e\u0439 map\u0427\u0442\u043e\u0431\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u044e \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0435\u043d\u0438\u0432\u043e\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432 map, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c Python \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 (yield).def my_map(func, *iterables):    # zip \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439    for args in zip(*iterables):        # \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438 \u043e\u0442\u0434\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b\u0438        yield func(*args)# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u0448 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434prices = [100, 200]taxes = [15, 30]lazy_result = my_map(operator.add, prices, taxes)print(next(lazy_result)) # 115 (\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442)print(next(lazy_result)) # 230 (\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439)\u0418\u043c\u0435\u043d\u043d\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e yield \u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c. \u0412\u044b\u0437\u043e\u0432 func(*args) \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0440\u0430\u0437\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 next() (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 list() \u0438\u043b\u0438 \u0446\u0438\u043a\u043b\u0430 for). \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0441\u0443\u0442\u044c \u043b\u0435\u043d\u0438\u0432\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.2. \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: filter()\u0415\u0441\u043b\u0438 map \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e filter \u043e\u0442\u0441\u0435\u043a\u0430\u0435\u0442 \u043c\u0443\u0441\u043e\u0440. \u041f\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 Python 3 \u043e\u043d \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d map: \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044f  \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430.\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: filter(function, iterable)\u041f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f-\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442. \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c True (\u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0435 \u00abtruthy\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435) \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435, \u0438 False (\u0438\u043b\u0438 \u00abfalsy\u00bb) \u0434\u043b\u044f \u0442\u0435\u0445, \u0447\u0442\u043e \u0438\u0434\u0443\u0442 \u043f\u043e\u0434 \u043d\u043e\u0436.# \u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u0438: \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043a\u0438logs = [&#171;INFO: start&#187;, &#171;ERROR: db crash&#187;, &#171;DEBUG: init&#187;, &#171;ERROR: timeout&#187;]errors = filter(lambda line: line.startswith(&#171;ERROR&#187;), logs)\u0421 None (\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445)\u0421\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u044b\u0439, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0440\u0435\u0434\u043a\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c\u044b\u0439 \u0432 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430\u0445 \u044e\u0437\u043a\u0435\u0439\u0441 filter \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 None \u0432\u043c\u0435\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438-\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430.\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c None, filter \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u044c. \u041e\u043d \u0431\u0435\u0437\u0436\u0430\u043b\u043e\u0441\u0442\u043d\u043e \u0432\u044b\u043a\u043e\u0441\u0438\u0442 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432 Python \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043b\u0436\u0438: 0, False, \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 &#171;&#187;, \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 [], \u0441\u043b\u043e\u0432\u0430\u0440\u0438 {} \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0441\u0430\u043c None.\u042d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u00ab\u0433\u0440\u044f\u0437\u043d\u044b\u0445\u00bb \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u043a\u0440\u0438\u0432\u043e\u0439 CSV \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e API:# \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043c\u0435\u0441\u0438\u0432\u043e \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445dirty_data = [&#171;apple&#187;, &#171;&#187;, None, &#171;banana&#187;, 0, False, &#171;cherry&#187;, []]# \u0412 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432clean_data = list(filter(None, dirty_data))print(clean_data) # \u0412\u044b\u0432\u043e\u0434: [&#8216;apple&#8217;, &#8216;banana&#8217;, &#8216;cherry&#8217;]\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u0435\u0435, \u0447\u0435\u043c \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e\u0435 [x for x in dirty_data if x]. \u041d\u043e \u0440\u0430\u0437 \u0443\u0436 \u043c\u044b \u0437\u0430\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u044b\u2026\u0425\u043e\u043b\u0438\u0432\u0430\u0440: filter() \u043f\u0440\u043e\u0442\u0438\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 (List Comprehensions)\u0427\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c: filter \u0438\u043b\u0438 if \u0432\u043d\u0443\u0442\u0440\u0438 list comprehension? \u041e\u0442\u0432\u0435\u0442 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 CPython. \u0412 Python \u0432\u044b\u0437\u043e\u0432 \u043b\u044e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (overhead \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0440\u0435\u0439\u043c\u0430 \u0441\u0442\u0435\u043a\u0430) \u2014 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f.\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u0430\u043b\u044c\u0446\u0430:\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 lambda \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440. \u0412\u044b\u0437\u043e\u0432 \u043b\u044f\u043c\u0431\u0434\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 filter \u0441\u043e\u0436\u0440\u0435\u0442 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u043d \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435.# \u274c \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0438 \u0445\u0443\u0436\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044fevens = filter(lambda x: x % 2 == 0, numbers)# \u2705 \u0411\u042b\u0421\u0422\u0420\u0415\u0415 \u0418 \u0427\u0418\u0422\u0410\u0415\u041c\u0415\u0415 (\u0432\u044b\u0431\u043e\u0440 PEP 8)evens = [x for x in numbers if x % 2 == 0] \u0415\u0441\u043b\u0438 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-480193","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/480193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=480193"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/480193\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=480193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=480193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=480193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}