gpt4 book ai didi

python - 使用要排除的索引列表进行索引

转载 作者:太空狗 更新时间:2023-10-29 17:02:32 25 4
gpt4 key购买 nike

这类似于其他一些问题( Explicitly select items from a Python list or tupleGrabbing specific indices of a list in Python ),但我希望做相反的事情:

指定索引列表/元组以排除而不是选择的干净方法是什么?我正在考虑类似于 R 或 MATLAB 的东西,您可以在其中指定要排除的索引,例如:

vector1 <- c('a', 'b', 'c', 'd')
vector2 <- vector1[-1] # ['b', 'c', 'd']
vector3 <- vector1[c(-1, -2)] # ['c', 'd']

有没有一种好的方法可以在 Python 中完成同样的事情?如果这是一个骗局,我深表歉意,我不确定要搜索什么。

最佳答案

>>> to_exclude = {1, 2}
>>> vector = ['a', 'b', 'c', 'd']
>>> vector2 = [element for i, element in enumerate(vector) if i not in to_exclude]

这里的技巧是:

  • 使用列表理解将一个列表转换为另一个列表。 (您也可以使用 filter 函数,尤其是当您要过滤的谓词已经作为一个名字不错的函数存在时。)
  • 使用enumerate 将每个元素及其索引放在一起。
  • 对任何 Set 使用 in 运算符或 Sequence* 类型来决定过滤哪些。 (如果有很多值,set 是最有效的,并且可能在概念上是正确的答案......但它对少数几个真的无关紧要;如果你已经有了一个列表或包含 4 个索引的元组,这也是一个“SetSequence”,因此您可以直接使用它。)

* 从技术上讲,任何 Container会做。但是大多数不是 SetSequenceContainer 在这里都是愚蠢的。

关于python - 使用要排除的索引列表进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com