可迭代拆包评估顺序[重复]

2023-12-01

我最近回答过一个问题用户遇到麻烦,因为他们将多维数组附加到另​​一个数组,并且在我的回答中引起了我的注意,可以使用可迭代解包来填充x and y值并分配给board[x][y]在同一条线上。

我原以为这会引发错误x and y当时还没有被定义,因为,即使在iterable-unpacking标签上写着:

可迭代的元素是同时地分配给多个值

这可以被视为在以下示例中起作用:

>>> board = [[0, 0], [0, 0]]
>>> move = [0, 1, 2]
>>> x, y, board[x][y] = move
>>> board
[[0, 2], [0, 0]]

这与以下内容相同:

>>> board = [[0, 0], [0, 0]]
>>> move = [0, 1, 2]
>>> x = move[0]
>>> y = move[1]
>>> board[x][y] = move[2]
>>> board
[[0, 2], [0, 0]]

然而,在计算斐波那契数列时,使用:

a, b = b, a + b

它不会评估为:

a = b
b = a + b

当与以下内容交换值时:

a, b = b, a

它不会评估为:

a = b
b = a

那么为什么这在第一个示例中有效呢?


右侧=总是首先评估,在这种情况下它正在打包一个元组。然后在解释左侧时将该元组解包。左侧和右侧不共享变量知识。右侧成为一个值,然后左侧使用该值value分配给变量(标签)。

在你的例子中的值x and y评估 RHS 后确定。然后解包从左到右进行,这样board[x][y]具有有效的索引。

切换顺序演示解包顺序:

>>> board[x][y], x, y = move[2], move[0], move[1]
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-7-a984ef3168f8> in <module>()
----> 1 board[x][y], x, y = move[2], move[0], move[1]    
NameError: name 'x' is not defined
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可迭代拆包评估顺序[重复] 的相关文章

  • 使用 Selenium 选择具有特定内容的锚点

    我有一个 HTML 元素 如下所示 a class country href es co Columbia a 如何根据内容 Columbia 选择该锚元素 我不能使用find element by class css selector因为
  • 在 python pandas 中将级别附加到列索引

    我有几个具有相同列的数据框 我只想在它们的索引上合并 print df1 out Value ISO Id 200001 8432000000 USD 200230 22588186000 USD 200247 4633000000 USD
  • 如何计算 numpy 数组中元素的特定范围

    我有一个像这样的数组 import numpy as np data np array 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0
  • 如何并行安装/编译 pip 要求(使 -j 等效)

    我的 pip 要求中有很多软件包需要安装 我想并行处理它们 我知道 例如 如果我想要n并行作业来自make我必须写make j n 是否有满足 pip 要求的等效命令 Thanks 有时 pip 使用 make 来构建依赖项 如果在开始之前
  • Daphne Django 文件上传大小限制

    我使用 Daphne 进行套接字和 http 连接 我正在运行 4 个工作容器 并且现在在 docker 容器中本地运行所有内容 如果我尝试上传 400MB 的文件 我的 daphne 服务器会失败 它适用于最大 15MB 的小文件 我的
  • 使用 LSTM 进行时间序列模式识别(python)

    我的应用场景和上一个类似时间序列中的模式识别 https stackoverflow com questions 11752727 pattern recognition in time series By processing a tim
  • xlwt 可以在单元格中创建一个包含标题和链接变量的超链接吗?

    例如 如何更改以下行 使 test 为变量 T 且 http google com http google com 是变量L ws write 0 0 xlwt Formula test HYPERLINK http google com
  • 组内条件计数

    我想在之后进行条件计数groupby 例如 按列的值分组A 然后计算每组中值出现的频率5出现在列中B 如果我整个过程都这样做DataFrame 只是len df df B 5 所以我希望我能做到df groupby A df B 5 siz
  • 需要Python字长函数示例

    我的家庭作业有点困难 我本来应该编写一个函数 limitWords 将输入限制为 20 个单词 如果输入超过 20 个单词 则将输入截断为仅 20 个单词 我使用 len text split 作为计算单词的方法 因此 20 个或更少的部分
  • Python Twisted 与 Cmd 模块集成

    我喜欢Python的Twisted http twistedmatrix com and Cmd http docs python org library cmd html 我想一起使用它们 我已经完成了一些工作 但到目前为止我还没有弄清楚
  • 增加 sigmoid 预测输出值?

    我创建了一个用于文本分类的 Conv1D 模型 当在最后一个密集处使用 softmax sigmoid 时 它产生的结果为 softmax gt 0 98502016 0 0149798 sigmoid gt 0 03902826 0 00
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • Django Rest框架Json解析

    我想解析传入的POSTdjangoviews py 文件中的数据 发布数据 number 17386372 data banana apple grapes 这是我尝试读取上述传入数据的方法request views py class Fr
  • 如何使用 python 在 XML 声明后添加注释

    import xml etree ElementTree as ET def addCommentInXml fileXml C Users Documents config xml tree ET parse fileXml root t
  • 使用缓存时计算“页面浏览量”或“点击量”

    我有一个叫做show board 在其中 除其他外 我增加了一个字段Board views每次运行时加 1 以计算页面浏览量 问题是当我在该视图上使用 cache page 装饰器时 Board views仅在每次生成新的缓存视图时才会增加
  • 仅将唯一行插入 SQLite (python)

    我在用着cursor executemany将 CSV 文件中的批量行插入到 SQLite 表中 根据主键字段 其中一些行预计会重复 当我执行该命令时 可以预见的是 我会收到完整性错误 并且不会插入任何内容 如何有选择地仅插入非重复行 而无
  • 从值数组中计算 sympy 表达式

    我正在尝试 sympy 但遇到了一个无法解决的问题 使用 scipy 我可以编写一个表达式并计算 x 值数组 如下所示 import scipy xvals scipy arange 100 100 0 1 f lambda x x 2 f
  • 对象对于所需数组来说太深 - scipy.integrate.odeint

    我昨天刚开始使用Python 使用时遇到错误scipy integrate odeint 我定义了一个函数 def SIR x t beta gamma mu M 这需要numpy array物体x t and M 标量浮动beta gam
  • 评估 df 每行中的日期时间函数是否落在另一个 df 中的日期时间范围内

    我是 python 新手 需要一些帮助来解决有关日期时间函数的问题 I have df a其中有一列标题为time 我正在尝试创建一个新专栏id在这个df a 我想要id根据时间是否包含在某个时间范围内来确定的列df b date 和 da

随机推荐

  • JPA @EntityListener 未按预期工作

    我正在集成Spring4和Hibernate5 但是有一个问题我无法解决 我在 BaseEntity 类上使用 EntityListener 注释 该类是其他业务模型的超类 我还在 BaseEntity 上使用 MappedSupercla
  • 为什么所有对话框都使用“旧”Android 2.x 样式?

    我目前正在使用 RAD Studio XE7 只是想知道为什么我的 Android 应用程序中的所有对话框都使用 旧 2 x 样式 如何强制我的 Android 应用程序在所有对话框 如日期选择器和 MessageDlg 中使用 4 x 样
  • 黑莓列表字段每行的高度可变?

    我需要实现自定义 ListField 它的每一行都有高度变量 所选行的高度应与其他行不同 那么你需要照照镜子并回答 未记录的方法可以吗 如果答案是肯定的 请使用 ListField setRowHeight index height 这至少
  • 如何拆分以逗号分隔的字符串?

    我有一个以逗号分隔的字符串 例如 one two three 我可以从中创建一个数组吗 如果可以 如何创建 在VB NET中 you want to split this input string Dim s As String one t
  • 根据pod标签动态更新prometheus scrape配置

    我正在尝试增强监控 并希望扩大从 Kube 资产引入 Prometheus 的指标数量 我们已经有了一个独立的 Prom 实现 它有一个硬编码的配置文件来监视一些裸机服务器 并连接到 cadvisor 以获取通用 Pod 指标 我想要做的是
  • 交换排序和冒泡排序有什么区别?它们是一样的吗?

    我是一个算法小白 所以一直在研究排序算法 我知道冒泡排序与将一个值与它的邻居进行比较有关 如果左边的值大于右边的值 则进行交换 复杂度是O n 2 我遇到了交换排序 它似乎具有相同的特征和算法 我尝试过对交换排序进行研究 但我得到的结果是有
  • Ruby 代码没有得到结果[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 这就是我正在使用的 puts How old are you age gets if age 10 puts Yo end 我期待看到Yo如果我进入10 但不要 我还很新 有
  • 带有 Zend Framework 2 模块的 PHPUnit

    我正在努力让 PHPUnit 测试与 ZF2 一起使用 我的目录结构如下 project src config data module public vendor init autoloader php test bootstrap php
  • Rust 常量表达式取决于泛型参数

    我试图概括 Rust 中的一些代数运算 例如组 环 字段等 并且在尝试实现两个 集合 Vec 的叉积时遇到了这个问题 请注意 这是使用const generics在夜间工具链中 fn CrossProduct
  • Selenium 和非无头浏览器不断要求验证码

    我遇到了一个问题 我们的一个网站一直在云中的浏览器中以无头模式请求验证码 所以我将其切换为非无头模式 这样我就可以自己输入验证码 我想下次它会工作 也许是因为一些 cookie 已经被存储了 但即使我输入了几次验证码 它也没有存储 另外值得
  • 如何延迟“热门”任务,以便按照设定的顺序处理它们

    假设我有一组任务 var task1 DoThisAsync var task2 DoThatAsync var task3 DoOtherAsync var taskN 我正在寻找一种按顺序处理一组任务的方法 例如 由包含集合中的位置决定
  • 从简单的 json 文件创建并显示 Spark 数据帧

    在本地模式下运行 Spark 时 以下简单的 json DataFrame 测试工作正常 这是 Scala 代码片段 但我也成功地在 Java 和 Python 中实现了同样的功能 sparkContext addFile jsonPath
  • diff 工具 (vscode) 无法从 cmd 启动

    使用 Git 我想将分支 lisa 合并到我的主分支中 如下所示 git merge lisa 所以我打开了我的存储库 然后在 Windows 资源管理器中打开 git 以访问 config Git 配置文件 diff tool vscod
  • Java 解析 XML 文档给出“序言中不允许的内容”。错误[重复]

    这个问题在这里已经有答案了 我正在用 Java 编写一个程序 它接受自定义 XML 文件并解析它 我使用 XML 文件进行存储 我在 Eclipse 中收到以下错误 Fatal Error 1 1 Content is not allowe
  • 如何停止 d3 力图布局模拟?

    一旦您在 D3 中 d3 layout force start 进行力布局模拟 它就会继续伴随一个活动事件 我想设置 5 秒的超时 让图形强制布局模拟成形并停止 调用 stop 或 alpha 0 这可以停止 但一旦我拖动节点 模拟就会再次
  • 被用户控件上的自定义属性难住了

    我创建了一个 ASP NET 用户控件 当我明确提供自定义属性的值时 该值将传递给控件 但是 当我尝试使用数据源中的值时 该值不会传递给控件 用户控件位于 FormView 内 FormView 成功显示基础记录 我试图将 FormView
  • 悬停时显示隐藏文本 (CSS)

    我已经尝试了一段时间来显示一些文字 hover 有谁能帮我解释一下吗 I tried DivForHoverItem hover HiddenText display block 没有运气 可悲的是 我发现的每个例子中都有这个小片段 我也无
  • 带 GUI 的 Java 刽子手游戏,数字递增/递减问题

    代码的以下部分不起作用 因为每个单词的赢 输计数不断增加超过 1 有时我会收到字符串长度的空指针异常 此外 虽然玩家应该有 7 次尝试 没有 但有时他会尝试更多 有时会更少 字符串取自文本文件 Hangeng txt 整个游戏位于键盘按键侦
  • 请求超过 Fusion Tables 层中的最大 URL 长度

    我在 Google 地图上使用 Fusion Tables 图层 如果我添加一个大的 where 条件 其中超过 1000 个项目 则该图层不会加载
  • 可迭代拆包评估顺序[重复]

    这个问题在这里已经有答案了 我最近回答过一个问题用户遇到麻烦 因为他们将多维数组附加到另 一个数组 并且在我的回答中引起了我的注意 可以使用可迭代解包来填充x and y值并分配给board x y 在同一条线上 我原以为这会引发错误x a