何时在 Python 的 AST 中使用 ExtSlice 节点?

2024-03-06

绿树蛇 http://greentreesnakes.readthedocs.org/en/latest/index.html gives 一个例子 http://greentreesnakes.readthedocs.org/en/latest/nodes.html?highlight=subscript#ExtSlice使用的ExtSlice:

>>> parseprint("l[1:2, 3]")
Module(body=[
    Expr(value=Subscript(value=Name(id='l', ctx=Load()), slice=ExtSlice(dims=[
        Slice(lower=Num(n=1), upper=Num(n=2), step=None),
        Index(value=Num(n=3)),
      ]), ctx=Load())),
  ])

然而,这种语法在交互式 python shell 中不起作用:

>>> foo = range(10)
>>> foo[1:2,3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple

有人知道如何使用此功能吗?

相关讨论:

  • Python AST 中的 ExtSlice 节点表示什么语法? https://stackoverflow.com/a/8370643/2160440

The syntax在 shell 中工作正常,只是这样list objects不支持扩展切片。你尝试过的引起了TypeError, not a SyntaxError.

Many Numpy http://www.numpy.org/数组类型可以;该项目在推动扩展切片语法方面发挥了重要作用。 Numpy 数组使用扩展切片来处理多维数组的不同维度。请参阅Numpy Indexing chapter http://docs.scipy.org/doc/numpy-1.10.1/user/basics.indexing.html有关它们如何使用语法的详细信息。

扩展切片是明确记录在订阅 section https://docs.python.org/2/reference/expressions.html#slicings,AST 节点编码extended_slicing term:

extended_slicing ::=  primary "[" slice_list "]"
slice_list       ::=  slice_item ("," slice_item)* [","]
slice_item       ::=  expression | proper_slice | ellipsis
proper_slice     ::=  short_slice | long_slice

然而,Python 标准库本身没有使用扩展切片的类型。

您可以轻松构建自己的类来接受扩展切片;只是期望处理你的元组object.__getitem__() method https://docs.python.org/2/reference/datamodel.html#object.__getitem__执行:

>>> class Foo(object):
...     def __getitem__(self, item):
...         return item
...
>>> foo = Foo()
>>> foo[1, 2:3]
(1, slice(2, 3, None))

的每个元素slice_list成为元组中的对象,其中:- 传入的分隔切片索引为slice()实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时在 Python 的 AST 中使用 ExtSlice 节点? 的相关文章

  • LSTM 和 CNN:ValueError:检查目标时出错:预期 time_distributed_1 有 3 个维度,但得到形状为 (400, 256) 的数组

    我要申请CNN and LSTM在我的数据上 我只选择一小部分数据 我的训练数据大小是 400 50 我的测试数据是 200 50 仅使用 CNN 模型 它可以正常工作 没有任何错误 只是在添加 LSTM 模型时出现了很多错误 model
  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • 如何在Python中找到低精度浮点值的原始文本表示?

    我遇到了显示问题floatPython 中的值 从外部数据源加载 它们是 32 位浮点数 但这也适用于较低精度的浮点数 以防万一 这些值是由人类在 C C 中输入的 因此与任意计算值不同 与round数字很 可能not预期的 但不能被忽略
  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • tkinter 上的“NoneType”对象没有属性“get”错误[重复]

    这个问题在这里已经有答案了 我最近开始使用 python 3 6 进行编码tkinter并尝试创建我自己的项目repl it 该项目是一个简单的交互式待办事项列表 但是我陷入困境并且无法使该功能正常工作 该函数只是简单地获取条目并将其添加到
  • 将元组列表转换为字符串 Python

    例如 我用 python 编写了一个返回列表的函数 1 1 2 2 3 3 但我希望输出为字符串 这样我就可以用另一个字符替换逗号 这样输出就是 1 1 2 2 3 3 有什么简单的方法可以解决这个问题吗 感谢您提前提供任何提示 这看起来像
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • Python/Scipy 2D 插值(非均匀数据)

    这是我上一篇文章的后续问题 Python Scipy 插值 地图坐标 https stackoverflow com questions 5124126 python scipy interpolation map coordinates
  • Python textwrap.wrap 导致 \n 问题

    所以我只是重新格式化了一堆代码以合并textwrap wrap 却发现我所有的 n都消失了 这是一个例子 from textwrap import wrap def wrapAndPrint msg width 25 wrap msg to
  • 如何在Python中比较列表列表中的元素以及比较列表列表中的键?

    我有以下顺序 seq ATG ATG ATG ATG GAC GAT GAA CCT GCC GCG GCA GCT 这是一个字典键 用于存储每个密码子的氨基酸值 三联碱基 例如ATG GCT etc aminoacid TTT F TTC
  • 尝试安装 python 包 Box2D 时出错

    我正在尝试通过 pip 安装 Box2D 软件包的版本 2 3 10 但是 pip 返回以下错误消息 ERROR Could not find a version that satisfies the requirement Box2D 2
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • Python 宏:用例?

    如果 Python 有一个类似于 Lisp Scheme 的宏工具 比如元Python https code google com p metapython 你会如何使用它 如果您是一名 Lisp Scheme 程序员 您会使用宏来做什么
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • 使用 django-profiles 以配置文件形式编辑相关模型

    我在用着Django 配置文件 http bitbucket org ubernostrum django profiles wiki Home在我的应用程序中 因为它为我提供了一些简单的视图 可以帮助我更快地到达我想去的地方 但是 我有一
  • pygame.image.load 不工作

    我正在尝试为游戏创建世界地图 但是当我尝试将世界地图加载到屏幕上时 命令行告诉我无法执行此操作 这是代码 import sys import pygame from pygame locals import pygame init Surf
  • 如何使 cx-oracle 将查询结果绑定到字典而不是元组?

    这是我的代码 我想找到一种方法将查询结果作为字典列表而不是元组列表返回 看起来 cx oracle 通过部分文档讨论 绑定 来支持这一点 虽然我不知道它是如何工作的 def connect dsn cx Oracle makedsn hos
  • 类型错误:不可散列的类型:pandas 的“切片”

    我有一个 pandas 数据结构 我这样创建 test inputs pd read csv input test csv delimiter 它的形状 print test inputs shape is this 28000 784 我
  • 打包布尔数组需要通过 int (numpy 1.8.2)

    我正在寻找更紧凑的方式来存储布尔值 numpy 内部需要 8 位来存储一个布尔值 但是np packbits允许打包 他们 这真是太酷了 问题是要打包在4e6字节数组a32e6字节我们需要首先使用的布尔值数组256e6字节将布尔数组转换为
  • 编写 CherryPy 装饰器以进行授权

    我有一个cherrypy应用程序 在某些视图上我想开始只允许某些用户查看它们 并将其他任何人发送到需要授权的页面 有没有办法使用自定义装饰器来做到这一点 我认为这将是最优雅的选择 这是我想做的一个基本示例 class MyApp autho

随机推荐

  • 在 Firestore 中为文档 ID 自定义对象建模的最佳方法是什么?

    假设我有一个 用户 集合 并且很高兴他们的 ID 是生成的 Firestore documentId 如下所示 Users Collection GENERATED FIRESTORE ID1 name User 1 name etc GE
  • 在 C# 中创建 ASN1 编码签名以发送到 Java

    我有一个私人 公共安全证书 我的 Java 同行拥有公钥 我需要获取一个字符串 对其进行签名 然后将其发送到 Java 然后验证数据和签名 微软和世界其他地方如何编码 签名数据似乎存在一个众所周知的问题 即有关字节处理方式的问题 这是众所周
  • 交互式Python - 相对导入的解决方案

    From Python 十亿次相对导入 https stackoverflow com questions 14132789 python relative imports for the billionth time For a from
  • Postgres - 在所有数据库上运行相同的查询(相同的模式)

    希望这是一个非常简单的问题 我有一个简单的 SELECT 查询 内置了一些子查询 我有超过 40 个数据库 我需要对所有数据库 都具有相同的架构 运行此查询并将结果返回到一个大表中 我正在想象一个循环序列 就像javascript的i 0
  • python gui 事件乱序

    from Tkinter import from tkMessageBox import class Gui def init self root self container Frame root self container grid
  • 如何在 Chrome 扩展中使用内容脚本文件注入 CSS?

    我正在尝试从 JavaScript 注入 CSS 它作为内容脚本注入 content scripts matches http www google com js script js I found 类似的问题 https stackove
  • 禁用选项卡布局

    我正在使用设计库提供的新类 TabLayout 我希望在特定情况下我正在使用的标签不能再更改 我设法禁用其视图页面上的滑动 但我不知道如何通过单击选项卡来禁用页面更改 提前致谢 我遇到了同样的问题 我使用以下代码禁用选项卡上的触摸事件来解决
  • Android - 在 Eclipse 中创建新活动 [重复]

    这个问题在这里已经有答案了 简单的一个 我已经阅读了一些指南和教程 它们非常清楚如何开始一项活动 有目的 但是 如何在 Eclipse 中创建新活动 我可能可以手动完成此操作 但随后我必须修改R文件 自动生成 并添加新的 xml 布局 好的
  • pandas 有没有办法将 read_sql() 与 sql 语句一起使用,该语句需要多个变量?

    这是我的代码的一部分 我已经有一个包含值的数据库 并且需要根据该数据帧中的值创建一个新的数据帧 目前这些值只有 12 和 13 存储在header row ids多变的 当我运行脚本时 我收到以下错误消息 pandas io sql Dat
  • 当 Web API 中没有发布数据时,避免使用 null 模型

    这个问题与我想要实现的目标类似 当没有发布的属性与模型匹配时 避免在 ASP Net Web API 中使用 null 模型 https stackoverflow com questions 25160345 avoiding null
  • 每次击键都会调用 api

    我尝试创建这个反应网站 我可以在其中搜索一个地方 我遇到一个问题 因为每当我在搜索框中输入新字母时 就会调用 api 这会使网站非常慢 我不希望它每次击键时都调用 api 我认为这是因为第二个 useEffect 但如果我删除该 useEf
  • 如何更改 LaTeX 中的文档字体?

    如何将整个文档的字体更改为无衬线字体 或其他字体 感谢文森特答案中的链接 我找到了解决方案 renewcommand familydefault sfdefault 这会将默认字体系列更改为无衬线字体
  • 为什么invalidate()之后不调用onDraw?

    我在 stackoverflow 上找到了很多帖子 但仍然无法解决我的问题 这是我的代码片段 public class MyView extends RelativeLayout Button b1 Button b2 Context sC
  • 如何知道用户是否在 Telegram 中看到了我的机器人发送的消息?

    我正在开发一个 Telegram 机器人 我想知道与我的机器人开始私人聊天的用户是否已经看到机器人发送的特定消息 并想知道他什么时候看到的 可以这样做吗 非常感谢 目前这是不可能的
  • 找不到方法:Microsoft.AnalysisServices

    我已经使用 SSIS 包为数据仓库创建了 ETL 设置 一切都工作正常 直到最后一步 即 分析服务处理任务编辑器 每当我添加立方体并按 确定 时 我都会收到以下错误 找不到方法 Void Microsoft AnalysisServices
  • 如何删除 Xcode 9 中标记单词上插入的双引号

    Xcode 9 中的这个新功能seems没问题 但我无法习惯它 而且在大多数情况下 它要求我比旧的本机函数做更多的工作 如何防止 Xcode 引用标记的单词 而不是用单引号替换标记的单词 在这种情况下 当标记单词时Text并击中 我想要的结
  • AppDomain.UnhandledException 未捕获未处理的异常

    我们有一个 NET 3 5 程序集 dll 由 VB6 代理 exe 通过 COM 接口执行 VB6 代码确实调用 Ensure that no system dialog comes up when we GPF PreviousErro
  • JPA 和数据库中的列顺序

    我使用 Eclipselink 作为我的持久性提供程序 有什么方法可以指定列在数据库中出现的顺序吗 数据库中的列顺序与我的实体中的属性顺序不匹配 据我了解按字母顺序排列的休眠顺序列 但我找不到 Eclipselink 的任何规范 Eclip
  • 如何修改 Poly3DCollection 对象的 zdata?

    我当前正在修改 Line2D 对象的 xdata 和 ydata 属性 如下所示 plt setp ph xdata event xdata ydata event ydata thisline figure canvas draw 我想对
  • 何时在 Python 的 AST 中使用 ExtSlice 节点?

    绿树蛇 http greentreesnakes readthedocs org en latest index html gives 一个例子 http greentreesnakes readthedocs org en latest