作者fuu0115 (GTX)
看板Python
标题Re: [问题] LIST 递加/乘某连继数值
时间Fri Dec 23 18:38:33 2011
※ 引述《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
1F:→ sbrhsieh:这样子的写法反而更不易阅读、更不好懂。这样写: 12/24 03:05
2F:→ sbrhsieh:print [int(x)+1 for x in '12345678'] 是不是比较好? 12/24 03:06
3F:→ fuu0115:我的作法list(r)是多余的,r本来就是list的一种 12/28 10:33
4F:→ buganini:他不是list的一种,应该说他是iterative的 12/28 15:55