看板 Python 關於我們 聯絡資訊
※ 引述《zha0 (這個帳號是掛網用)》之銘言: : 標題: [問題] 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] : >>> 可以考慮用lambda: r = '12345678' print [i for i in imap(lambda x: int(x) + 1, list(r))] #用map or itertools.imap >>>[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] : 依樣畫葫蘆 r = '12345678' print [i for i in imap(lambda x: int(x) ** 2, list(r))] >>>[1, 4, 9, 16, 25, 36, 49, 64] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.238.231
sbrhsieh:這樣子的寫法反而更不易閱讀、更不好懂。這樣寫: 12/24 03:05
sbrhsieh:print [int(x)+1 for x in '12345678'] 是不是比較好? 12/24 03:06
fuu0115:我的作法list(r)是多餘的,r本來就是list的一種 12/28 10:33
buganini:他不是list的一種,應該說他是iterative的 12/28 15:55