python - 元组索引、组合切片和索引

标签 python indexing slice

我有一个关于 python 中元组索引和切片的问题。我想写出更好、更清晰的代码。这是我的问题的简化版本: 我有一个元组 a = (1,2,3,4,5) 我想对其进行索引,以便得到 b = (1,2,4) >。 是否可以在一次操作中完成此操作,或者我必须执行 b = a[0:2] + (a[3],)?我考虑过用另一个元组建立索引,这是不可能的,我也搜索过是否有一种方法可以组合切片和索引。在我看来,必须有更好的方法来做到这一点。

非常感谢:)

最佳答案

正如评论中所述,您可以使用itemgetter

import operator
a = (1,2,3,4)
result = operator.itemgetter(0, 1, 3)(a)

如果您经常进行这种索引并且您的数组很大,您也可以看看numpy,因为它支持更复杂的索引方案:

import numpy as np
a = (1,2,3,4)
b = np.array(a)
result = b[[0,1,3]]

如果数组非常大,或者您有一个巨大的单点列表,您想要包含它,那么提前构建切片列表将变得很方便。对于上面的示例,它将如下所示:

singlePoints = [3,]
idx = [*range(0,2), *singlePoints]
result = b[idx]

关于python - 元组索引、组合切片和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73068050/

相关文章:

python - 搜索链接号码的循环

python - 在 GraphViz 中创建边和节点之间的连接线

java - 长字符串列上的 Hibernate @Index 错误

java - 使用 Lucene 索引时有什么处理重复的好方法吗?

mysql - 加载数据到文件后创建索引

go - Go slice 索引符号背后的想法是什么?

python django 在服务器中运行 bash 脚本

go - 如何 append 到二维 slice

python - Pandas 使用 0.21.0 对 FutureWarning 进行切片

Python Pandas : Updating row based on value from another column