无for循环访问列表元素

时间:2013-11-28 12:24:20

标签: python python-2.7

让我说我有这个清单

x = [1,10,5,4]

我希望为列表中的每个项目添加1。所以,输出将是

x = [2, 11, 6, 5].

有没有简单的方法可以不使用for循环呢?

4 个答案:

答案 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)