@@ -12014,6 +12014,93 @@ <h4 id="Абстракции-&
12014
12014
12015
12015
</ div >
12016
12016
</ div >
12017
+ </ div > </ section > < section >
12018
+ < div class ="cell border-box-sizing text_cell rendered "> < div class ="prompt input_prompt ">
12019
+ </ div >
12020
+ < div class ="inner_cell ">
12021
+ < div class ="text_cell_render border-box-sizing rendered_html ">
12022
+ < h5 id ="Наглядное-«разворачивание»-абстракции-списков "> Наглядное «разворачивание» абстракции списков< a class ="anchor-link " href ="#Наглядное-«разворачивание»-абстракции-списков "> ¶</ a > </ h5 > < p > Разобранная выше сокращённая запись < code > l1 = [f1(e) if cond(e) else f2(e) for e in iterable]</ code > будет эквивалентна следующему коду.</ p >
12023
+ < div class ="highlight "> < pre > < span > </ span > < span class ="n "> l1</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
12024
+ < span class ="k "> for</ span > < span class ="n "> e</ span > < span class ="ow "> in</ span > < span class ="n "> iterable</ span > < span class ="p "> :</ span >
12025
+ < span class ="k "> if</ span > < span class ="n "> cond</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ):</ span >
12026
+ < span class ="n "> l1</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> f1</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ))</ span >
12027
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
12028
+ < span class ="n "> l1</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> f2</ span > < span class ="p "> (</ span > < span class ="n "> e</ span > < span class ="p "> ))</ span >
12029
+ </ pre > </ div >
12030
+
12031
+ </ div >
12032
+ </ div >
12033
+ </ div > </ section > < section >
12034
+ < div class ="cell border-box-sizing text_cell rendered "> < div class ="prompt input_prompt ">
12035
+ </ div >
12036
+ < div class ="inner_cell ">
12037
+ < div class ="text_cell_render border-box-sizing rendered_html ">
12038
+ < h5 id ="Более-сложный-пример "> Более сложный пример< a class ="anchor-link " href ="#Более-сложный-пример "> ¶</ a > </ h5 > < p > Списковое включение:</ p >
12039
+ < div class ="highlight "> < pre > < span > </ span > < span class ="n "> dimensions</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="mi "> 7</ span > < span class ="p "> ,</ span > < span class ="mi "> 6</ span > < span class ="p "> );</ span > < span class ="n "> d</ span > < span class ="o "> =</ span > < span class ="n "> dimensions</ span >
12040
+ < span class ="n "> s</ span > < span class ="o "> =</ span > < span class ="s2 "> "111000101000111000100101100010100010000100"</ span >
12041
+ < span class ="n "> l1</ span > < span class ="o "> =</ span > < span class ="p "> [[</ span > < span class ="n "> s</ span > < span class ="p "> [</ span > < span class ="n "> r</ span > < span class ="o "> *</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> +</ span > < span class ="n "> c</ span > < span class ="p "> ]</ span > < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ])]</ span > < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ])]</ span >
12042
+ < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="n "> l1</ span > < span class ="p "> :</ span >
12043
+ < span class ="k "> print</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span > < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> )</ span >
12044
+ </ pre > </ div >
12045
+ < p > Развёрнутый вариант:</ p >
12046
+ < div class ="highlight "> < pre > < span > </ span > < span class ="n "> dimensions</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="mi "> 7</ span > < span class ="p "> ,</ span > < span class ="mi "> 6</ span > < span class ="p "> );</ span > < span class ="n "> d</ span > < span class ="o "> =</ span > < span class ="n "> dimensions</ span >
12047
+ < span class ="n "> s</ span > < span class ="o "> =</ span > < span class ="s2 "> "111000101000111000100101100010100010000100"</ span >
12048
+ < span class ="n "> l1</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
12049
+ < span class ="p "> [</ span > < span class ="n "> s</ span > < span class ="p "> [</ span > < span class ="n "> r</ span > < span class ="o "> *</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> +</ span > < span class ="n "> c</ span > < span class ="p "> ]</ span > < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ])]</ span > < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ])</ span >
12050
+ < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]):</ span >
12051
+ < span class ="n "> l1</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> ([])</ span >
12052
+ < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]):</ span >
12053
+ < span class ="n "> l1</ span > < span class ="p "> [</ span > < span class ="n "> r</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> s</ span > < span class ="p "> [</ span > < span class ="n "> r</ span > < span class ="o "> *</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> +</ span > < span class ="n "> c</ span > < span class ="p "> ])</ span >
12054
+ < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="n "> l1</ span > < span class ="p "> :</ span >
12055
+ < span class ="k "> print</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span > < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> )</ span >
12056
+ </ pre > </ div >
12057
+
12058
+ </ div >
12059
+ </ div >
12060
+ </ div > </ section > < section >
12061
+ < div class ="cell border-box-sizing code_cell rendered ">
12062
+ < div class ="input ">
12063
+ < div class ="prompt input_prompt "> In [2]:</ div >
12064
+ < div class ="inner_cell ">
12065
+ < div class ="input_area ">
12066
+ < div class =" highlight hl-ipython3 "> < pre > < span > </ span > < span class ="n "> dimensions</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="mi "> 7</ span > < span class ="p "> ,</ span > < span class ="mi "> 6</ span > < span class ="p "> );</ span > < span class ="n "> d</ span > < span class ="o "> =</ span > < span class ="n "> dimensions</ span >
12067
+ < span class ="n "> s</ span > < span class ="o "> =</ span > < span class ="s2 "> "111000101000111000100101100010100010000100"</ span >
12068
+ < span class ="n "> l1</ span > < span class ="o "> =</ span > < span class ="p "> [[</ span > < span class ="s2 "> "#"</ span > < span class ="k "> if</ span > < span class ="n "> s</ span > < span class ="p "> [</ span > < span class ="n "> r</ span > < span class ="o "> *</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> +</ span > < span class ="n "> c</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "1"</ span >
12069
+ < span class ="k "> else</ span > < span class ="s2 "> " "</ span >
12070
+ < span class ="k "> for</ span > < span class ="n "> c</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ])]</ span >
12071
+ < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ])]</ span >
12072
+ < span class ="k "> for</ span > < span class ="n "> r</ span > < span class ="ow "> in</ span > < span class ="n "> l1</ span > < span class ="p "> :</ span >
12073
+ < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span > < span class ="n "> sep</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> )</ span >
12074
+ </ pre > </ div >
12075
+
12076
+ </ div >
12077
+ </ div >
12078
+ </ div >
12079
+
12080
+ < div class ="output_wrapper ">
12081
+ < div class ="output ">
12082
+
12083
+
12084
+ < div class ="output_area ">
12085
+
12086
+ < div class ="prompt "> </ div >
12087
+
12088
+
12089
+ < div class ="output_subarea output_stream output_stdout output_text ">
12090
+ < pre > ###
12091
+ # #
12092
+ ###
12093
+ # # #
12094
+ # #
12095
+ # #
12096
+ #
12097
+ </ pre >
12098
+ </ div >
12099
+ </ div >
12100
+
12101
+ </ div >
12102
+ </ div >
12103
+
12017
12104
</ div > </ section > </ section > < section > < section >
12018
12105
< div class ="cell border-box-sizing text_cell rendered "> < div class ="prompt input_prompt ">
12019
12106
</ div >
0 commit comments