使用 Python 从列表中提取第 N 个元素
任务是从给定列表中提取每个后续的第 N 个项目。例如,给定一个整数列表 [0, 1, 2, 3, ..., 997, 998, 999],目标是获得一个包含第一个和随后的第 10 个项目的新列表,结果是 [0, 10, 20, 30, ..., 990].
虽然带有模数检查的 for 循环是一种简单的方法,但使用 Python 的切片运算符存在更简洁、更高效的解决方案。
<code class="python">xs = list(range(1000)) new_list = xs[0::10]</code>
这一行用一行代码完成了任务。语法 xs[0::10] 是一个切片表达式,其中:
生成的 new_list 包含所需的元素,[0, 10, 20, 30, ..., 990]。
性能比较
基准测试表明,这种切片方法比 for 循环解决方案要快得多:
$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 517 loops, best of 5: 471.776 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 4.03 usec per loop
这证明了从列表中提取每个第 N 个项目的切片方法的效率和简单性蟒蛇。
以上是如何使用 Python 切片从列表中提取每个第 N 个元素的详细内容。更多信息请关注PHP中文网其他相关文章!