如何根据索引高效地从列表中提取元素?

Susan Sarandon
发布: 2024-11-16 04:16:03
原创
869 人浏览过

How to Efficiently Extract Elements from a List Based on Indices?

通过索引访问多个列表元素

要根据索引从列表中提取特定元素,可以使用多种方法。考虑从列表 [-2, 1, 5, 3, 8, 5, 6] 中提取索引为 1、2 和 5 的元素的示例。

使用列表理解

如问题所示,可以有效地使用列表理解:

a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
c = [a[i] for i in b]
登录后复制

这种方法有效地迭代索引列表 b 并从列表 a 中提取相应的元素。

使用operator.itemgetter

Python的operator.itemgetter函数提供了一个简洁的解决方案:

from operator import itemgetter
a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
print(itemgetter(*b)(a))
登录后复制

使用NumPy

对于那些使用 NumPy 的人,它提供了另一种方法:

import numpy as np
a = np.array([-2, 1, 5, 3, 8, 5, 6])
b = [1, 2, 5]
print(list(a[b]))
登录后复制

性能注意事项

虽然选择取决于列表大小等因素,根据其使用频率,所提供的列表理解通常对于小列表表现良好。但是,如果列表很大或访问频繁,则 itemgetter 或 NumPy 可能更可取,因为它们的性能有所提高。

以上是如何根据索引高效地从列表中提取元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板