python:用条件替换列表中的元素

2023-11-26

我正在尝试使用 python 执行以下操作,但出现了奇怪的行为。假设我有以下列表:

x = [5, 4, 3, 2, 1]

现在,我正在做类似的事情:

x[x >= 3] = 3

这给出:

x = [5, 3, 3, 2, 1]

为什么只有第二个元素发生变化?我期待着:

[3, 3, 3, 2, 1]

因为Python会评估x>=3 as True自从True等于 1 所以第二个元素x将转换为 3。

为此,您需要使用列表理解:

>>> [3 if i >=3 else i for i in x]
[3, 3, 3, 2, 1]

如果你想知道为什么x >= 3评估为 True,请参阅以下内容文档 :

CPython实现细节:除数字之外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。

当然,在 python-2.x 和 CPython 实现中,列表总是大于整数类型。正如字符串大于列表一样:

>>> ''>[]
True

然而,在 Python-3.X 中,你不能将不可排序的类型放在一起比较,你会得到一个TypeError结果。

In [17]: '' > []
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-052e7eb2f6e9> in <module>()
----> 1 '' > []

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

python:用条件替换列表中的元素 的相关文章

  • 如何计算 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
  • 将 c++ 异常传播到 cython - python 异常

    我的 Cython 0 17 1 有问题 我的函数抛出一个std runtime error如果文件不存在 我想以某种方式将此异常传播到我的 Cython 代码 void loadFile const string filename som
  • 反转 Python 整数的位

    给定一个十进制整数 例如 65 如何反转 Python 中的底层位 即以下操作 65 01000001 10000010 130 看来这个任务可以分为三步 将十进制整数转换为二进制表示形式 反转位 转换回十进制 第 2 步和第 3 步看起来
  • Daphne Django 文件上传大小限制

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

    我不太了解 python 但从文档中可以看出代码 str AAAA str pack
  • 使用 LSTM 进行时间序列模式识别(python)

    我的应用场景和上一个类似时间序列中的模式识别 https stackoverflow com questions 11752727 pattern recognition in time series By processing a tim
  • Python:os.remove 不起作用

    为什么不是os remove string 为我工作 我的代码写如下 try os remove a output current time trmv successful message message n output message
  • python解释器自动重启而不返回答案

    调用递归函数时 python解释器会自动重新启动吗 我正在编写一个快速排序算法 并尝试对一个大的数字数组 顺序 10 4 进行排序 但是当我尝试对整个数组进行排序时 python 正在重新启动 即给我 重新启动 并且存储在内存中的所有值 函
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • [matplotlib]:理解“set_ydata”方法

    我试图了解如何使用 set ydata 方法 我在 matplotlib 网页上找到了很多示例 但我只找到了 set ydata 被 淹没 在大型且难以理解的代码中的代码 我想要一个简短且易于理解的代码来帮助我理解 set ydata 的工
  • 获取每行最后 150 行中所有正值的计数 - pandas

    我有以下数据集 其中有列Date and Values对于每一行 它两者都有 ve and ve价值观 我必须计算最后 150 行的所有正值 在每一行 因此前 150 行将具有空值 然后 以下行将具有最后 150 行的计数 ve行 类似地
  • 如何通过不规则索引获取子张量?

    我想通过不规则索引获得子张量 这是我的问题 Input tensor 2x8x10x1 Batch x Height x Width x Channel index Height 0 1 4 5 index Width 0 1 4 5 8
  • Django 模板:输出带有所有小数位的浮点数

    我如何在 django 模板中输出这个数字 小数位数是可变的 我事先不知道 x 0 000015 1 x 输出是 1 5e 05 2 x stringformat f 输出是 0 000015 这不是本地化的 应该有逗号 我需要对输出进行本
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • 如何将 bisect.insort_left 与键一起使用?

    文档缺少示例 你如何使用bisect insort left 基于密钥 尝试根据键插入 bisect insort left data brown 7 将插入放在data 0 从文档 bisect insort left a x lo 0
  • 如何使用 python 在 XML 声明后添加注释

    import xml etree ElementTree as ET def addCommentInXml fileXml C Users Documents config xml tree ET parse fileXml root t
  • 无法使用python和beautifulsoup抓取网页中的某些href

    我目前正在使用 Python 3 4 和 bs4 爬取网页 以收集塞尔维亚在里约 2016 年的比赛结果 所以网址here http rio2016 fivb com en volleyball women teams srb serbia
  • DataFrame 对象没有属性“sort_values”

    dataset pd read csv dataset csv fillna 100 dataset Id 0 dataset i 0 dataset j 0 entries dataset dataset Id 0 print type
  • 使用 Pandas 来“applymap”来访问索引/列?

    解决以下 pandas 问题的最有效方法是什么 这是一个简化的示例 其中包含数据框中的一些数据 import pandas as pd import numpy as np df pd DataFrame np random randint
  • 子进程调用,它们是并行完成的吗?

    我一直在谷歌搜索这个问题的答案 但似乎没有一个答案 谁能告诉我如果subprocess模块是否并行调用 Python 文档建议它可用于生成新进程 但没有提及它们是否并行 如果它们可以并行完成 您能否给我举一个例子或将我链接到一个例子 这取决

随机推荐

  • GWT、Google App Engine、TimerTask 或 ServiceImpl 中的线程抛出异常

    我正在使用 GWT 和 Google App Engine 我有一系列记录 我想每 30 分钟更新一次 在里面服务实现我有以下代码 new Timer schedule new TimerTask Override public void
  • 对于密钥 authView,此类不符合键值编码[重复]

    这个问题在这里已经有答案了 当我在模拟器上运行我的应用程序时 它运行良好 当我尝试使用设备时 它不起作用 并且出现以下错误 NOTE 我在代码中没有找到任何类型的 authView 类 2011 02 24 12 04 14 472 Tes
  • boost::asio 从socket读取n个字节到streambuf

    我有一个序列化结构 它是通过套接字发送的 我需要分块读取它 因为它的一个字段包含剩余数据的大小 我需要读取前几个字节 找出长度并读取其余部分 这就是我所得到的 boost asio streambuf buffer boost system
  • 文本区域中的新行字符会增加 C# 中的文本长度

    我的 ASP NET MVC 应用程序中遇到此问题 在我的一个模型中 有一个字段 描述 该字段的数据库列设置为NVarchar 300 在我看来 我正在创建一个文本区域 如下所示 Html TextAreaFor m gt m Descri
  • 不活动后自动关闭工作簿

    我创建了一个宏 可以在一段时间不活动后关闭WB 如果我手动打开文件 它会完美工作 但如果我使用不同 WB 中的另一个宏来打开文件 它不会在设置的不活动时间后自动关闭 我用来自动关闭它的代码是 本工作簿模块 Private Sub Workb
  • 如何在两个单独的步骤中运行 MSVC 预处理器和编译器?

    我想运行 Microsoft Visual Studio 编译器cl exe不调用预处理器 这可能吗 我认为简单地编译预处理的源代码 使用 c标志 将使预处理器以无操作的方式运行 但显然情况并非如此 我做了一些基准测试 这是一个小源文件 m
  • 使用 Rails 3 中的 Devise 显示上次登录的详细信息

    我有一个 Rails 3 应用程序 它使用 Devise 进行身份验证 我想在用户管理表中显示每个用户上次登录的日期和时间 我的应用程序基于以下应用程序 https github com dannymcc rails3 base 我已阅读
  • WPF keyDown 响应时间准确度

    我正在开发一个应用程序 用户可以在其中看到某些内容 并且必须通过单击键盘上的按键来做出反应 反应时间至关重要 越准确越好 我只编写了几行代码来测试默认设置的示例应用程序 inf WPF namespace Test
  • 保存变量值并在页面刷新后检索它[重复]

    这个问题在这里已经有答案了 我将一个字符串值保存到一个变量中 我的网页在某个过程后自动重新加载 我需要知道即使在页面刷新后我是否可以获得该变量中存储的值 我使用 javascript 代码刷新我的网页window location relo
  • 在 WPF 文本块中获取段落的最佳方法是什么? (换行符?)

    我有一些带有 r n 换行符的文本 我想在 WPF 文本块中添加换行符 我尝试将 r n 替换为 不带空格 当我在 XAML 中设置 Text 属性时它起作用 但在从 C 代码隐藏中设置时似乎不起作用 那么 将 WPF 文本块中的 r n
  • mongo组查询如何保留字段

    大家 在 mongo 组查询中 结果仅显示参数中的键 如何像mysql查询组一样保留每个组中的第一个文档 例如 name age sex province city area address ddl1st 22 纯爷们 BeiJing Be
  • 使用 CSS 仅针对 Firefox

    使用条件注释 可以轻松地使用特定于浏览器的 CSS 规则来定位 Internet Explorer 有时 Gecko 引擎 Firefox 会出现问题 使用 CSS 规则仅针对 Firefox 而不是其他浏览器的最佳方法是什么 也就是说 不
  • 如何使用用户 ID 参数下载 MSI 安装程序

    我有一个 NET C 应用程序 包含在 MSI 安装程序中 myprogram exe 我有一个 PHP 网站和一个特定页面 用户可以通过链接下载该程序 我希望能够跟踪 NET 应用程序上的某些事件 例如 程序已打开 将事件发送到我的服务器
  • 返回每组一列最大值的行[重复]

    这个问题在这里已经有答案了 如果不搜索同一个表至少两次以获取最大行 然后获取该行的值 我很难做到这一点 所讨论的表相当大 因此这是不可接受的 我的桌子可能是这样的 SCORES ID ROUND SCORE 1 1 3 1 2 6 1 3
  • 是否可以在 0.0.0.0 而不是 127.0.0.1 上启动 Vault 开发服务器?

    我有一个 Hashicorp Vault 服务器在 AWS EC2 实例上运行 地址为 127 0 0 1 8200 在我的安全组的入站规则中 我启用了 TCP 8200 但是 我无法从本地计算机访问 Vault 服务器 我认为这是因为开发
  • Clojure:减少与应用

    我理解之间的概念差异reduce and apply reduce list 1 2 3 4 5 translates to 1 2 3 4 5 apply list 1 2 3 4 5 translates to 1 2 3 4 5 然而
  • 如何从MySql中的表中删除最后一条记录(有条件)

    我有一个登录时间像这样的表 id user id datetime 1 1 2011 01 17 18 51 05 2 1 2011 01 18 18 51 05 3 1 2011 01 19 18 51 05 4 2 2011 01 19
  • 获取连接到 SignalR hub 的侦听器和客户端的数量

    有没有办法找出侦听器的数量 连接到集线器的客户端 如果至少有一个客户端已连接 我正在尝试运行 启动一项任务 否则不启动它 HubName taskActionStatus public class TaskActionStatus Hub
  • 致命:不是 git 存储库:“.git”错误

    我创建了一个预提交挂钩 它获取数据库转储并将其保存在我的应用程序 文件夹下的文件中 该文件也在 git 存储库中 保存后我将文件添加到提交列表中 以下是我的预提交文件中的代码 D xampp mysql bin mysqldump u ro
  • python:用条件替换列表中的元素

    我正在尝试使用 python 执行以下操作 但出现了奇怪的行为 假设我有以下列表 x 5 4 3 2 1 现在 我正在做类似的事情 x x gt 3 3 这给出 x 5 3 3 2 1 为什么只有第二个元素发生变化 我期待着 3 3 3 2