[問題] LIST 遞加/乘某連繼數值

看板Python作者 (這個帳號是掛網用)時間14年前 (2011/12/15 16:24), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/2 (看更多)
>>> 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

12/15 16:45, , 1F
r = [ v*(k+1) for k,v in enumerate(r) ]
12/15 16:45, 1F

12/15 16:47, , 2F
話說回來,寫得像C又不是甚麼罪。
12/15 16:47, 2F

12/15 18:43, , 3F
看不懂你想算什麼?
12/15 18:43, 3F

12/15 18:44, , 4F
最後的結果不就是i**2?
12/15 18:44, 4F

12/15 18:46, , 5F
然後為什麼要用range(8,1,-1)
12/15 18:46, 5F

12/17 19:12, , 6F
enumerate() 好用耶!又學到一招了 之前如果想要
12/17 19:12, 6F

12/17 19:12, , 7F
iterate 一個 list 又想要用 i 的話,都要用 range() 搭
12/17 19:12, 7F

12/17 19:13, , 8F
lists[i] 感覺就不漂亮
12/17 19:13, 8F
文章代碼(AID): #1EwQwyA_ (Python)
討論串 (同標題文章)
文章代碼(AID): #1EwQwyA_ (Python)