您可以利用
enumerate,
zip并列出理解:
>>> a = [0, 4, 10, 100]# basic enumerate without condition:>>> [x - a[i - 1] for i, x in enumerate(a)][1:][4, 6, 90]# enumerate with conditional inside the list comprehension:>>> [x - a[i - 1] for i, x in enumerate(a) if i > 0][4, 6, 90]# the zip version seems more concise and elegant:>>> [t - s for s, t in zip(a, a[1:])][4, 6, 90]
在性能方面,似乎并没有太大的差异:
In [5]: %timeit [x - a[i - 1] for i, x in enumerate(a)][1:]1000000 loops, best of 3: 1.34 µs per loopIn [6]: %timeit [x - a[i - 1] for i, x in enumerate(a) if i > 0]1000000 loops, best of 3: 1.11 µs per loopIn [7]: %timeit [t - s for s, t in zip(a, a[1:])]1000000 loops, best of 3: 1.1 µs per loop
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)