在Python中交换列表中的元素

2023-11-30

我有一个列表,我需要将列表中的第一个元素与列表中的最大元素交换。

但为什么代码 1 可以工作,而代码 2 却不能:

code 1:

a = list.index(max(list))
list[0], list[a] = list[a], list[0]

code 2:

list[0], list[list.index(max(list))] = list[list.index(max(list))], list[0]

我认为Python会先评估右侧,然后再将其分配给左侧的名称?


Python 将结果存储在多个目标中左到右,按该顺序执行赋值目标表达式。

所以你的第二个版本基本上可以归结为:

temp = list[list.index(max(list))],list[0]
list[0] = temp[0]
list[list.index(max(list))] = temp[1]

请注意,list.index(max(list))被执行after list[0]被改变了,这就是你刚刚存储最大值的地方。

这记录在赋值语句文档:

  • 如果目标列表是逗号分隔的目标列表:该对象必须是一个可迭代对象,其项目数与目标列表中的目标数相同,并且项目已分配,从左到右,到相应的目标。

从那时起,就好像每个目标都是单个目标,因此以下文档从左到右适用于每个目标:

将对象分配给单个目标的递归定义如下。

[...]

  • 如果目标是订阅:将计算引用中的主要表达式。它应该产生一个可变序列对象(例如列表)或映射对象(例如字典)。接下来,计算下标表达式。

如果您更改了分配的顺序,您的代码将起作用:

list[list.index(max(list))], list[0] = list[0], list[list.index(max(list))]

因为现在list[list.index(max(list))]被分配给first.

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

在Python中交换列表中的元素 的相关文章

  • 函数名称未定义

    我有一段代码 看起来像这样 if name main main def main print hello 但是 当我尝试运行此代码时 出现错误 NameError 名称 main 未定义 我是否没有在函数 def main 的第一行定义名称
  • 按每个元素中出现的数字对字符串列表进行排序[重复]

    这个问题在这里已经有答案了 我有一个脚本 其目的是对不断下载到服务器上的空间数据集文件进行排序和处理 我的列表目前大致如下 list file t00Z wrff02 grib2 file t00Z wrff03 grib2 file t0
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 在 Python 中延迟转置列表

    所以 我有一个延迟生成的可迭代的三元组 我试图弄清楚如何将其转换为 3 个可迭代对象 分别由元组的第一个 第二个和第三个元素组成 然而 我希望这件事能懒惰地完成 所以 举例来说 我希望 1 2 3 4 5 6 7 8 9 将变成 1 4 7
  • 列表中小于给定数字的数字

    xMenores xMenores X H T R Z xMenores X T Z X gt H R is H xMenores采用三个参数 第一个是数字 第二个是数字列表 第三个是一个列表 是将包含结果的变量 规则的目标xMenores
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 为什么我会收到 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

    以下代码给出了值错误 major males for row in recent grads if recent grads Men gt recent grads Women major males append recent grads
  • lmfit模型拟合然后预测

    我正在领养lmfit进行曲线拟合并使用拟合模型进行预测 然而下面的代码并没有达到我想要的效果 能否请你帮忙 谢谢 import numpy as np from lmfit import Model def linearModel x a0
  • 使用 python 从 CSV 创建字典

    我有一个 CSV 格式的文件 其中 A B 和 C 是标题 我如何以Python方式将此CSV转换为以下形式的字典 A 1 B 4 C 7 A 2 B 5 C 8 A 3 B 6 C 9 到目前为止我正在尝试以下代码 import csv
  • 当元组列表中相同项目的值是字符串时,对它们的值求和

    如果我有这样的元组列表 my list books 5 books 10 ink 20 paper 15 paper 20 paper 15 我怎样才能把列表变成这样 books 15 ink 20 paper 50 即添加同一项目的费用
  • 我可以告诉 Linux 不要交换特定进程的内存吗?

    有没有办法告诉 Linux 它不应该将特定进程的内存交换到磁盘 它是一个 Java 应用程序 所以理想情况下我希望有一种方法可以从命令行执行此操作 我知道您可以将全局交换性设置为 0 但这明智吗 您可以通过以下方式执行此操作姆洛克尔 2 h
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • 为什么我无法杀死 k8s pod 中的 python 进程?

    我试图杀死一个 python 进程 ps aux grep python root 1 12 6 2 1 2234740 1332316 Ssl 20 04 19 36 usr bin python3 batch run py root 4
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 在字符串内打印单引号

    我想输出 XYZ s ABC 我在Python IDLE中尝试了以下3条语句 第一条和第二条语句输出 a before 带打印功能的第三条语句不输出 before 作为 Python 新手 我想了解为什么 之前输出 在第 1 条和第 2 条
  • 如何在类型提示中定义元组或列表的大小

    有没有办法在参数的类型提示中定义元组或列表的大小 目前我正在使用这样的东西 from typing import List Optional Tuple def function name self list1 List Class1 if
  • 为什么我会在 Python 字符串格式中使用除 %r 之外的其他内容?

    我偶尔会使用 Python 字符串格式 这可以像这样完成 print int i Float f String s 54 34 434 some text 但是 这也可以这样做 print int r Float r String r 54
  • 尝试 numba 时出现巨大错误

    我在使用 numba 时遇到了大量错误 讽刺的是 正确的结果是在错误之后打印的 我正在使用最新的 Anaconda python 并安装了 numba conda install numba 一次在 Ubuntu 13 64 位和 anac
  • 如何使用 keras.backend.gradients() 获取梯度值

    我试图获得 Keras 模型的输出相对于模型输入 x 而不是权重 的导数 似乎最简单的方法是使用 keras backend 中的 梯度 它返回梯度张量 https keras io backend https keras io backe

随机推荐

  • Firebase 查询从两个节点一起获取数据

    我在 Firebase 实时数据库中有一个名为 Posts 的根节点 在其中 我有两个名为 ImagePosts 和 TextPosts 的节点 在 ImagePosts 和 TextPosts 内 我有各种帖子的 postId 在 pos
  • 非法指令:运行任何 Tensorflow 程序时出现 4 错误

    我正在尝试训练 Tensorflow 卷积神经网络 无论我运行程序的环境如何 我总是会收到一个神秘的错误 在 Jupyter Notebook 中 内核会直接死掉 在终端中 我得到 非法指令 4 没有回溯 在 Pycharm 中 我得到 进
  • 如何显示和隐藏 UISearchDisplayController 的 UISearchBar

    我有一个位于导航右侧的按钮搜索 这是我的代码 UIButton btnSearch UIButton buttonWithType UIButtonTypeCustom btnSearch frame CGRectMake 0 0 22 2
  • Fabric.io 中的 API 密钥和 Build Secret 有什么区别?

    我在 Android 应用程序中使用 Fabric io 的 Crashlytics 工具 我已将 API 密钥放入清单文件中 Fabric 还提供了构建秘密字符串 但没有使用说明 Fabric 可能假设用户事先了解如何使用 BUILD S
  • 映射 servlet 来满足我的请求

    我想映射一个 servlet 来服务包含 app 并以 html 结尾的请求 如下所示
  • 使用 GSON 加载非常重的流

    我正在尝试读取非常重的 JSON 超过 6000 个对象 并将它们存储在哈希映射上 以便稍后将其插入到我的数据库中 但问题是我面临 OOM 这是我沉重的 JSON 造成的 但是 GSON 库应该让我摆脱这种情况 但事实并非如此 有任何想法吗
  • 获取默认选择颜色?

    I can change theCSS选择颜色 但我怎样才能get浏览器 操作系统默认选择以便我可以在其他地方使用它 例如在 Ubuntu Chrome 上 文本以橙色突出显示 我想将同样的风格应用到 li 当我用鼠标悬停在它上面时 CSS
  • 全局检测触摸

    我试图弄清楚如何解决这个 相当 简单的问题 但我失败得很惨 所以我真的需要你的建议 我的应用程序由一个带有多个选项卡的 uitabbar 组成 在其中一个中 我有一堆 UIImageView 每个视图代表图片的缩略图 类似地 当您通过按住应
  • 在C++中,为什么指针转换时地址会改变?

    以下是代码 include
  • 使用现有基类对象创建派生类对象?

    是否有可能 或快速解决方法 创建定义为派生类的对象 而无需在内存中创建基类对象 相反 派生对象应该引用基类实际存在的对象 接管 其内存驻留 出于速度原因 这是需要的 创建新的派生对象 将数据从基类对象复制到它 然后销毁基对象需要太多时间 在
  • Java ArrayList.add() 方法对于纯并行添加线程安全吗? [复制]

    这个问题在这里已经有答案了 考虑一个函数的 for 循环 该函数接受 ArrayList 引用并向该 ArrayList 添加一个对象 我现在想并行执行每个函数调用 如果我不关心对象添加的顺序并且没有函数读取或操作任何 ArrayList
  • Google App Engine - 将 Blobstore API 与 Google Cloud Storage 结合使用

    我必须存储大小超过 1MB 的文件 谷歌应用程序引擎建议我应该将它们存储在谷歌云存储中 应用程序引擎 BlobProperty 不适合 这部分将 Blobstore API 与 Google Cloud Storage 结合使用建议使用 c
  • Microsoft 语音识别 setInputToDefaultAudioDevice 引发异常

    大家好 我在 MS 语音识别方面遇到了麻烦 我的代码很简单 static void init string enUsEngine string Empty foreach RecognizerInfo ri in SpeechRecogni
  • Office Starter 是否包含 Microsoft.Office.Interop 的 DLL?

    我想使用 Microsoft Office Interop Excel 从 XLS 文件中提取一些数据 我安装了 Visual Studio 2010 和 Office 开发人员工具 但是 我在以下位置收到 COMException 错误v
  • Jekyll 链接集合中的文档?

    在 Jekyll 的 Front Matter 中 有没有办法引用另一个文档 我有一个自定义集合 并且想在每个文档中添加元数据 例如 父主题 指向父主题的链接 和 子主题 文档数组 或 相关主题 通过这样的引用 我可以访问链接文档的元数据
  • 修改组件的状态然后调用“setState(this.state)”是一个好习惯吗?

    我正在使用 ReactJS 我有一个有状态组件 秒表容器 和多个无状态子组件 秒表 在外部组件中 我正在做这样的事情 the outer component is a container for multiple stopwatches t
  • 使用 window.onload 使用 Javascript 进行表单验证

    你好 我真的很困惑 因为我是一个 javascript 初学者 这让我很困惑 有人知道如何编写以下 javascript 表单验证吗 我确信这很简单 但我想不出这个来救我的命 感谢您分享您的知识 我需要在没有 jquery 的情况下编写以下
  • 是否可以在没有实体的情况下使用 JpaRepository ?

    是否可以使用JpaRepository没有实体 在这种情况下 将其替换为 DTO 如下示例 Repository public interface BffRepository extends JpaRepository
  • 从另一个 Stencil JS 库导入 Stencil JS 库

    我有两个 Stencil JS Web 组件库 library a 和library b 这些不是应用程序 只是单独的 npm 组件包 我想使用library a 和library b 中的一些组件 如何将组件从 A 导入到 B 中 Ste
  • 在Python中交换列表中的元素

    我有一个列表 我需要将列表中的第一个元素与列表中的最大元素交换 但为什么代码 1 可以工作 而代码 2 却不能 code 1 a list index max list list 0 list a list a list 0 code 2