使用列表理解来构建新列表:
new_items = [x if x % 2 else None for x in items]
您可以根据需要修改原始列表,但实际上并不能节省时间:
items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]for index, item in enumerate(items): if not (item % 2): items[index] = None
以下是(Python 3.6.3)演示非节省时间的时间:
In [1]: %%timeit ...: items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ...: for index, item in enumerate(items): ...: if not (item % 2): ...: items[index] = None ...:1.06 µs ± 33.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)In [2]: %%timeit ...: items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ...: new_items = [x if x % 2 else None for x in items] ...:891 ns ± 13.6 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
和Python 2.7.6计时:
In [1]: %%timeit ...: items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ...: for index, item in enumerate(items): ...: if not (item % 2): ...: items[index] = None ...: 1000000 loops, best of 3: 1.27 µs per loopIn [2]: %%timeit ...: items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ...: new_items = [x if x % 2 else None for x in items] ...: 1000000 loops, best of 3: 1.14 µs per loop
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)