让我说我有这个清单
x = [1,10,5,4]
我希望为列表中的每个项目添加1
。所以,输出将是
x = [2, 11, 6, 5].
有没有简单的方法可以不使用for循环呢?
答案 0 :(得分:3)
试试这个
x = [1,10,5,4]
x = map(lambda y: y+1, x)
答案 1 :(得分:2)
多么荒谬的要求
x = [x[0]+1, x[1]+1, x[2]+1, x[3]+1]
的简单方法带循环
使用map
x = map(1 .__add__, x)
但是大多数人会称之为循环
答案 2 :(得分:2)
循环很好。列表理解很棒。
x = [e+1 for e in x]
正如koffein所说,它甚至比地图功能更快:
>>> timeit.timeit("[e+1 for e in x]","x = list(range(100))",number=100000)
0.7970689787364194
>>> timeit.timeit("map((1).__add__,x)","x = list(range(100))",number=100000)
0.8699621167282174
>>> timeit.timeit("map(y,x)","x=list(range(100));y=lambda x:x+1",number=100000)
1.8961955365813026
答案 3 :(得分:1)
这应该有所帮助。
y = lambda x: x+1
x = [1,10,5,4]
map(y, x)