作者LeonH (Leon)
看板Python
標題[問題] 新手請問list comprehension的問題
時間Sun Jan 18 19:26:56 2009
各位前輩大家好
小弟剛開始接觸Python
目前是看Python學習手冊自學中
在這裡請教各位幾個問題
在第四章提到串列這邊的例子
1. >>> M = [[1, 2, 3]
2. [4, 5, 6]
3. [7, 8, 9]]
4. >>> diag = [M[i][i] for i in [0, 1, 2]] # 從矩陣中收集對角線項目
5. >>> diag
6. [1, 5, 9]
7. >>> doubles = [c * 2 for c in 'spam'] # 重複字串中的字元
8. >>> doubles
9. ['ss', 'pp', 'aa', 'mm']
那個第四行和第七行真的看不懂
特別是i跟c是什麼?
可不可以請板上的前輩幫小弟解釋一下
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.204.150.148
1F:推 godfat:只是一個名字(placeholder),拿來放後面依序給定的東西 01/18 19:30
2F:→ godfat:例如 for c in 'spam' 就是 c 會依序成為 s, p, a, m 01/18 19:31
3F:→ godfat:於是生出來的東西就是 ['ss', 'pp', 'aa', 'mm'], 因為 *2 01/18 19:32
4F:推 aquarianboy:第四行是指抓出M裡面的[0][0], [1][1], [2][2]位置的 01/18 21:17
5F:→ aquarianboy:資料 01/18 21:17
6F:推 shaopin:從for c in 'spam' 開始看,有一點用到LISP語言的精神 01/19 04:06
7F:推 sbrhsieh:如果還沒讀到 for statement,建議等唸過 for 回頭來看 01/19 12:55
8F:→ sbrhsieh:list comprehension 01/19 12:55
9F:→ sbrhsieh:懂 for statement 應該不會不懂 list comprehension 01/19 12:56
10F:→ LeonH:我了解了!感謝大家!! 01/20 22:02