亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個參考答案不懂

http://img1.sycdn.imooc.com//5728acc00001879203760245.jpg這個看不懂,誰能幫我詳解一下

正在回答

2 回答

[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的作用其實就是篩選的意思。


2 回復 有任何疑惑可以回復我~
#1

沒有什么不可能 提問者

非常感謝!
2016-05-04 回復 有任何疑惑可以回復我~
#2

程序迪

你好!你舉的例子: print [x-y for x in [4, 5, 6] for y in [1, 1, 2]] 打印結果是不是應該為[3, 3, 2, 4, 4, 3, 5, 5, 4] 我也是新手 求指導!
2016-07-18 回復 有任何疑惑可以回復我~
#3

清波 回復 程序迪

對,我的疏忽,課程的答復不能修改,感謝指正。
2016-07-19 回復 有任何疑惑可以回復我~
#4

程序迪 回復 清波

但是為什么是這樣而不是每個索引相對應的相減呢?這是什么原理?
2016-07-19 回復 有任何疑惑可以回復我~
#5

程序迪 回復 清波

但為什么是這樣而不是兩個list中每個索引相對應的相減呢?是什么原理?求解!
2016-07-19 回復 有任何疑惑可以回復我~
#6

清波 回復 程序迪

額,回復里面也不能帶格式,我只能說 依次兩個 for in 相當于 第二個寫在第一個里面。
2016-07-20 回復 有任何疑惑可以回復我~
#7

程序迪 回復 清波

還是不太理解...
2016-07-20 回復 有任何疑惑可以回復我~
#8

波函數的魔方

太給力了
2016-08-08 回復 有任何疑惑可以回復我~
查看5條回復
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)?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

這個參考答案不懂

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號