作者zha0 (这个帐号是挂网用)
站内Python
标题[问题] LIST 递加/乘某连继数值
时间Thu Dec 15 16:24:25 2011
>>> r = map(int, list('12345678'))
>>> r
[1, 2, 3, 4, 5, 6, 7, 8]
>>> r=[x+1 for x in r]
>>> r
[2, 3, 4, 5, 6, 7, 8, 9]
>>>
使用 for 可以一次处理 LIST 里面的元素, 但 x+1 是固定的 .
如果今天我要
>>> r = map(int, list('12345678'))
>>> r
[1, 2, 3, 4, 5, 6, 7, 8]
>>> for i in range(8,1,-1):
r[i-1] = r[i-1]*i
>>> r
[1, 4, 9, 16, 25, 36, 49, 64]
请问这样的话, 有没有什麽比较好的写法啊 , 不然觉得好像也是在写 C ,
对不起一直问简单的问题 T_T 只是想把基础打好 .
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.121.210
1F:→ mathfeel:r = [ v*(k+1) for k,v in enumerate(r) ] 12/15 16:45
2F:→ mathfeel:话说回来,写得像C又不是甚麽罪。 12/15 16:47
3F:推 mikapauli:看不懂你想算什麽? 12/15 18:43
4F:→ mikapauli:最後的结果不就是i**2? 12/15 18:44
5F:→ mikapauli:然後为什麽要用range(8,1,-1) 12/15 18:46
6F:推 darkgerm:enumerate() 好用耶!又学到一招了 之前如果想要 12/17 19:12
7F:→ darkgerm:iterate 一个 list 又想要用 i 的话,都要用 range() 搭 12/17 19:12
8F:→ darkgerm:lists[i] 感觉就不漂亮 12/17 19:13