課程
/后端開發
/Python
/初識Python
這個看不懂,誰能幫我詳解一下
2016-05-03
源自:初識Python 10-4
正在回答
[100*n1?+?10*n2?+?n3???for?n1?in?range(1,?10)??for?n2?in?range(10)??for?n2?in?range(10)??if?n1==n3]
這個代碼可以分為三段:
第一段是?100*n1 + 10*n2 + n3 這個其實就是把 n1 放到百位上, n2 放到10位上, n3 放到 各位上,組成一個三位數。
第二段是 三個for ?對應著 限制了 n1 (1至9), n2(0至9), n3(1至9) 的取值范圍, 這個很好理解, 為了最終取出 個位和百位 相等的三位數, n1 不能為0, 自然 n3 也就不能為0
第三段是 if n1 == n3 , 這個就是對列表推導式中 取值的限制, 只有 n1 == n3 的時候 才會賦值給第一段,才會放入到最終生成的列表中。?
基本就這樣了, 如果這個比較麻煩的話,可以舉兩個簡單的例子:
print?[x-y??for?x?in?[4,5,6]??for?y?in?[1,1,2]] [3,?4,?4] ##?解釋,?x,?y??依次從?各自的?for?in?中順序取值,在運算,最后放入到生成的列表中。 print?[x?for?x??in?range(10)?if?x%2==0] [0,?2,?4,?6,?8] ##?解釋,?依然是?從?for?in?中取值,?但是之后符合?if?后面的條件的,?才放入?最后生成的列表中。 ##?這兩個例子,?一個講?多個值?的?列表推導式,?另一個講?列表推導式中?if的作用其實就是篩選的意思。
沒有什么不可能 提問者
程序迪
清波 回復 程序迪
程序迪 回復 清波
波函數的魔方
print?[100?*?n1?+?10?*?n2?+?n3?for?n1?in?range(1,?10)?for?n2?in?range(10)?for?n3?in?range(10)?if?n1==n3]
為什么n2和n3要表示為range(10)?
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-05-03
這個代碼可以分為三段:
第一段是?100*n1 + 10*n2 + n3 這個其實就是把 n1 放到百位上, n2 放到10位上, n3 放到 各位上,組成一個三位數。
第二段是 三個for ?對應著 限制了 n1 (1至9), n2(0至9), n3(1至9) 的取值范圍, 這個很好理解, 為了最終取出 個位和百位 相等的三位數, n1 不能為0, 自然 n3 也就不能為0
第三段是 if n1 == n3 , 這個就是對列表推導式中 取值的限制, 只有 n1 == n3 的時候 才會賦值給第一段,才會放入到最終生成的列表中。?
基本就這樣了, 如果這個比較麻煩的話,可以舉兩個簡單的例子:
2016-07-01
為什么n2和n3要表示為range(10)?