Python:一种使用索引列表对列表进行切片的有效方法
Posted
技术标签:
【中文标题】Python:一种使用索引列表对列表进行切片的有效方法【英文标题】:Python: an efficient way to slice a list with a index list 【发布时间】:2012-09-27 22:09:38 【问题描述】:我想知道一种有效的方法和代码节省来分割一千个元素的列表
示例:
b = ["a","b","c","d","e","f","g","h"]
index = [1,3,6,7]
我希望得到如下结果:
c = ["b","d","g","h"]
【问题讨论】:
【参考方案1】:使用列表最直接的方法是使用列表推导:
c = [b[i] for i in index]
但是,根据您的数据的具体外观以及您还需要对它做什么,您可以使用 numpy 数组 - 在这种情况下:
c = b[index]
会做你想做的事,并且会避免大切片的潜在内存开销 - numpy 数组比列表更有效地存储,切片需要查看数组而不是制作部分副本。
【讨论】:
感谢 lvc 我有这个错误信息 c = b[index] Traceback (last recent call last): File "以上是关于Python:一种使用索引列表对列表进行切片的有效方法的主要内容,如果未能解决你的问题,请参考以下文章
使用索引值列表对 pandas 多索引数据框进行切片 [重复]