当切片索引超出范围时如何引发 IndexError?

2024-02-22

The Python 文档 https://docs.python.org/2/library/exceptions.html#exceptions.IndexError指出

切片索引被无声地截断掉在允许范围

因此没有IndexErrors切片列表时会上升,无论什么start or stop使用参数:

>>> egg = [1, "foo", list()]
>>> egg[5:10]
[]

自从上榜以来egg不包含任何大于该值的索引2, a egg[5] or egg[10]调用会引发IndexError:

>> egg[5]
Traceback (most recent call last):
IndexError: list index out of range

现在的问题是,我们怎样才能筹集到IndexError,当两个给定的切片索引都超出范围时?


在Python 2中你可以重写__getslice__方法通过这种方式:

class MyList(list):
    def __getslice__(self, i, j):
        len_ = len(self)
        if i > len_ or j > len_:
            raise IndexError('list index out of range')
        return super(MyList, self).__getslice__(i, j)

然后使用你的类而不是list:

>>> egg = [1, "foo", list()]
>>> egg = MyList(egg)
>>> egg[5:10]
Traceback (most recent call last):
IndexError: list index out of range
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当切片索引超出范围时如何引发 IndexError? 的相关文章

  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • Python HMAC:类型错误:字符映射必须返回整数、None 或 unicode

    我在使用 HMAC 时遇到了一个小问题 运行这段代码时 signature hmac new key secret key msg string to sign digestmod sha1 我收到一个奇怪的错误 File usr loca
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • python中basestring和types.StringType之间的区别?

    有什么区别 isinstance foo types StringType and isinstance foo basestring 对于Python2 basestring是两者的基类str and unicode while type
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • 如何在 NLog 中记录网络目标的异常

    我正在使用NLog http nlog project org日志框架 并尝试获取任何 UDP 记录器应用程序中显示的异常和堆栈跟踪信息 例如Sentinel http sentinel codeplex com and Log2控制台 h
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • 如何获取pandas中groupby对象中的组数?

    我想知道有多少个独特的组需要执行计算 给定一个名为 groupby 的对象dfgroup 我们如何找到组的数量 简单 快速 Pandaic ngroups 较新版本的 groupby API pandas gt 0 23 提供了此 未记录的

随机推荐

  • 如何限制文本宽度

    我想限制文本块的宽度 这样它看起来就像在每行的 ned 处都有 br 像这样的事情 Texttttttttttttttttttttt tttttttttttttttttttttttt tttttttttttttttttttttttt 由此
  • UICollectionView 的 iOS 字母滚动

    我有一个集合视图 显示人物及其姓名的多个图像 并且我已经实现了搜索和排序功能 但是 问题是我也想要按字母顺序排列 但是集合视图没有像这样的委托方法UITableView has NSArray sectionIndexTitlesForTa
  • C++ 编程帮助

    您创建一个程序 显示用户输入的两个数字之间 含 的偶数之和 例如 2 和 7 12 之和 2 4 6 这就是我到目前为止所拥有的 但如果你能让我朝着正确的方向前进 那就会有帮助了 Advanced30 cpp displays the su
  • 如何以编程方式从父进程获取子进程的堆栈跟踪?

    假设我在程序中派生了一个子进程 在某个时候 我暂停子进程kill child SIGSTOP 并想要检查堆栈的内容 有没有办法以编程方式从父进程获取子进程的堆栈跟踪 我知道ptrace是跟踪子进程并检查其内存 寄存器的标准方法 我也知道ba
  • 使用 C/C++ 创建多线程应用程序的最简单方法是什么?

    使用 C C 创建多线程应用程序的最简单方法是什么 不幸的是没有简单的方法 有几个选项 Linux 上的 pthread Windows 上的 win32 api 线程或 boost thread 库
  • 如何在运行时查找已加载的 d3.js 扩展及其版本?

    按照 JavaScript 库的惯例 全局根对象由d3 js https d3js org 有一个自我识别属性 该属性返回 并因此在控制台中调用时输出 所用库的版本 在这种情况下 它是 d3 version Now 从 4 0 版本开始 d
  • Keras 中的 Seq2Seq 双向编码器解码器

    我正在尝试使用 Keras 实现 seq2seq 编码器 解码器 并在编码器上使用双向 lstm 如下所示 from keras layers import LSTM Bidirectional Input Concatenate from
  • 如何使用 html、svg 创建可点击的三角形网格?

    我已经创建了一个三角形网格 如下所示 svg margin left 0px margin right 60px padding 0 div div div div
  • Cocoapods 和 XCode5 集成错误

    在新的 XCode5 中构建我的项目时 我收到以下警告 Pods App 作为 libPods App a 的隐式依赖项被拒绝 因为其架构 i386 不包含所有必需的架构 x86 64 要解决此问题 请选择Pods项目在左侧菜单中 然后在t
  • Firebase 通知在 iOS 11 中不起作用

    我正在开发一个使用 Firebase 推送通知的应用程序 它运行良好 直到我在 iOS 11 中尝试 使用带有 iOS 11 的 iPhone 时 通知不会到达 这是我的代码 void application UIApplication a
  • 从 Eclipse 项目创建多个 JAR

    我已经开始开发一个项目 目前该项目从 Eclipse 项目生成一个整体 JAR 文件 基本上 有一个 Ant 脚本 它会在 Eclipse Java Builder 运行时运行 并获取 Eclipse Java Builder 的输出 cl
  • Spring 的 @DependsOn 不适用于应用程序事件?

    我有一个发送应用程序事件的类 接收者不能错过这个事件 因此发送者依赖于接收者 Service DependsOn receiver class Sender PostConstruct public void init applicatio
  • 一般来说,什么更快,是通过文件进行 grep 还是通过 blob 运行 SQL LIKE %x% 查询?

    假设我正在设计一个工具 可以将代码片段保存在 PostgreSQL MySQL 数据库或文件系统中 我想搜索这些片段 使用像Sphinx这样的搜索引擎似乎不太实用 因为我们在搜索代码时需要代码的精确文本匹配 grep and ack并且一直
  • 如果更新时属性值为 null,则不应将该属性添加到记录中

    假设我有一个像这样的猫鼬模式 var mongoose require mongoose var Schema mongoose Schema var testSchema new Schema name type String requi
  • 如何暂停/延迟我的代码的特定部分

    我在一个类中有一个 PaintComponent 方法 它生成一个 10 10 的网格 我想降低帧速率 以便每次函数为网格中的矩形着色时 我都可以看到进度 public void paint Graphics g1 super paint
  • Ruby 中私有方法应该放在哪里?

    大多数博客或教程或书籍在任何类 模块的底部都有私有方法 这是最佳实践吗 我发现在必要时使用私有方法更方便 例如 public def my method do something minion method end private def
  • Python 正则表达式中的错误? (re.sub 与 re.MULTILINE)

    我注意到 Python 的 Regex 库中有一些奇怪的行为 并且我不确定我是否做错了什么 如果我使用正则表达式对其运行re sub with re MULTILINE 它似乎只替换了前几次出现的情况 如果我关闭它 它会替换所有出现的情况r
  • 有没有办法在python nltk中反转stem?

    我有一个 NLTK python 中的词干列表 并且想要获取创建该词干的可能单词 有没有办法在Python中获取词干并获取词干的单词列表 据我所知 答案是否定的 并且根据词干分析器的不同 可能很难进行详尽的搜索来恢复词干规则的效果 并且无论
  • Zend_Tool:致命错误:无法重新声明类 Zend_Loader

    我能够创建新项目 zf create project ProjectName 但这会创建一个项目而不复制 Zend Framework 库 所以我将 ZF 复制到我的项目库中并尝试创建一个控制器 zf create controller a
  • 当切片索引超出范围时如何引发 IndexError?

    The Python 文档 https docs python org 2 library exceptions html exceptions IndexError指出 切片索引被无声地截断掉在允许范围 因此没有IndexErrors切片