看板 Python 關於我們 聯絡資訊
>>> 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
mathfeel:r = [ v*(k+1) for k,v in enumerate(r) ] 12/15 16:45
mathfeel:話說回來,寫得像C又不是甚麼罪。 12/15 16:47
mikapauli:看不懂你想算什麼? 12/15 18:43
mikapauli:最後的結果不就是i**2? 12/15 18:44
mikapauli:然後為什麼要用range(8,1,-1) 12/15 18:46
darkgerm:enumerate() 好用耶!又學到一招了 之前如果想要 12/17 19:12
darkgerm:iterate 一個 list 又想要用 i 的話,都要用 range() 搭 12/17 19:12
darkgerm:lists[i] 感覺就不漂亮 12/17 19:13