作者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