Taj*_*ton 15 python indexing list
这与一些其他问题(从Python列表或元组明确地选择项目,抓住在Python列表的具体指标),但我希望做相反的:
指定要排除的索引列表/元组的干净方法是什么,而不是选择?我正在考虑类似于R或MATLAB的东西,您可以在其中指定要排除的索引,例如:
vector1 <- c('a', 'b', 'c', 'd')
vector2 <- vector1[-1] # ['b', 'c', 'd']
vector3 <- vector1[c(-1, -2)] # ['c', 'd']
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以在Python中完成同样的事情?道歉,如果这是一个骗局,我不确定究竟要搜索什么.
aba*_*ert 17
>>> to_exclude = {1, 2}
>>> vector = ['a', 'b', 'c', 'd']
>>> vector2 = [element for i, element in enumerate(vector) if i not in to_exclude]
Run Code Online (Sandbox Code Playgroud)
这里的技巧是:
filter函数,特别是如果你正在过滤的谓词已经作为一个具有好名字的函数而存在.)enumerate将每个元素及其索引放在一起.in对任何Set或Sequence*类型使用运算符来决定要过滤哪些运算符.(set如果有很多值,A 是最有效的,并且可能在概念上是正确答案......但是对于少数人来说它真的无关紧要;如果你已经有一个列表或元组中有4个索引,那就是一个" Set或Sequence",所以你可以使用它.)*从技术上讲,任何人Container都会这样做.但是大多数Container不是Set或者Sequence在这里会很傻.
import numpy
target_list = numpy.array(['1','b','c','d','e','f','g','h','i','j'])
to_exclude = [1,4,5]
print target_list[~numpy.in1d(range(len(target_list)),to_exclude)]
Run Code Online (Sandbox Code Playgroud)
因为numpy很有趣
| 归档时间: |
|
| 查看次数: |
15173 次 |
| 最近记录: |