如何检查列表中的所有元素是否符合条件?

2024-02-05

我有一个列表,其中包含许多子列表,每个子列表包含 3 个元素,例如:

my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]

每个子列表的最后一个元素是一个排序标志,每个子列表的初始值为 0。随着我的算法的进展,我想检查该标志是否至少有一个元素为 0。目前我使用 while 循环,如下所示:

def check(list_):
    for item in list_:
        if item[2] == 0:
            return True
    return False

只要满足该条件,整个算法就会循环,并在每次迭代中设置一些标志:

while check(my_list):
    for item in my_list:
        if condition:
            item[2] = 1
        else:
            do_sth()

因为它引起问题 https://stackoverflow.com/questions/6260089/为了在迭代列表时从列表中删除元素,我使用这些标志来跟踪已处理的元素。

如何简化或加速代码?


See also Pythonic way of checking if a condition holds for any element of a list https://stackoverflow.com/questions/1342601/ for checking the condition for any element. Keep in mind that "any" and "all" checks are related through De Morgan's law https://stackoverflow.com/questions/2168603/, just as "or" and "and" are related.

Existing answers here use the built-in function all to do the iteration. See How do Python's any and all functions work? https://stackoverflow.com/questions/19389490 for an explanation of all and its counterpart, any.

If the condition you want to check is "is found in another container", see How to check if all of the following items are in a list? https://stackoverflow.com/questions/3931541/ and its counterpart, How to check if one of the following items is in a list? https://stackoverflow.com/questions/740287. Using any and all will work, but more efficient solutions are possible.


这里最好的答案是使用all() http://docs.python.org/library/functions.html#all,这是这种情况的内置函数。我们将其与生成器表达式 https://www.youtube.com/watch?v=t85uBptTDYY干净高效地产生您想要的结果。例如:

>>> items = [[1, 2, 0], [1, 2, 0], [1, 2, 0]]
>>> all(flag == 0 for (_, _, flag) in items)
True
>>> items = [[1, 2, 0], [1, 2, 1], [1, 2, 0]]
>>> all(flag == 0 for (_, _, flag) in items)
False

注意all(flag == 0 for (_, _, flag) in items)直接等价于all(item[2] == 0 for item in items),在这种情况下阅读起来会更好一点。

并且,对于过滤器示例,列表理解(当然,您可以在适当的情况下使用生成器表达式):

>>> [x for x in items if x[2] == 0]
[[1, 2, 0], [1, 2, 0]]

如果你想检查至少一个元素是否为 0,更好的选择是使用any() http://docs.python.org/library/functions.html#any哪个更具可读性:

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

如何检查列表中的所有元素是否符合条件? 的相关文章

  • 切片稀疏(scipy)矩阵

    我将不胜感激任何帮助 以理解从 scipy sparse 包中切片 lil matrix A 时的以下行为 实际上 我想根据行和列的任意索引列表提取子矩阵 当我使用这两行代码时 x1 A list 1 x2 x1 list 2 一切都很好
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 是否可以将 pd.Series 分配给无序 pd.DataFrame 中的列而不映射到索引(即不重新排序值)?

    在 Pandas 中创建或分配新列时 我发现了一些意外的行为 当我对 pd DataFrame 进行过滤或排序 从而混合索引 然后从 pd Series 创建新列时 Pandas 会重新排序该系列以映射到 DataFrame 索引 例如 d
  • 检测 IDLE 的存在/如何判断 __file__ 是否未设置

    我有一个脚本需要使用 file 所以我了解到 IDLE 没有设置这个 有没有办法从我的脚本中检测到 IDLE 的存在 if file not in globals file is not set 如果你想做一些特别的事情 file 未设置
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • 如何使用 setuptools 在 Python 3.6 中的库发行版上包含父文件夹结构?

    我正在使用 setuptools 来分发 Python 库 我有以下目录结构 src production setup py prod library package1 package2 文件夹结构必须保持这样 因为将来会有多个库位于 sr
  • 如何选择目录中的第一个文件?

    我试图在不知道文件名的情况下逐个处理目录中的一些文件 所以我用过os listdir path 列出文件 所以我必须在每次调用函数时列出文件 问题是当有很多文件 比如 2000 个 时 列出每个文件需要很长时间 而我只想要第一个文件 有没有
  • Cassandra 3.0 不接受 Java 11 安装

    我正在尝试启动 Cassandra 3 但它给出了消息 Cassandra 3 0 及更高版本需要 Java 8u40 或更高版本 我安装了 Java 11 gt java version java version 11 0 11 2021
  • 收到推送后出现意外的系统错误

    今天 github com 出现了一些停机时间 直到我去推送大约十几个本地提交时我才意识到 https status github com messages https status github com messages https tw
  • 使用 xcopy 批量复制文件

    我已经在互联网上检查了一些示例 但我无法让我的 第一个 批处理文件工作 我想自动将文件从一个文件夹复制到另一个文件夹 但没有任何反应 echo off xcopy C source C target c d i y exit 你能看出有什么
  • AttributeError:模块“numpy”没有属性“__version__”

    我今天更新了计算机 当我尝试导入 pandas 时收到以下错误消息 import pandas as pd AttributeError module numpy has no attribute version 我已尝试以下链接中的建议
  • 如何从 OneDrive 下载文件

    我想从 One Drive 下载公共文件夹中的文件 但它不下载这些文件 这是场景 在公共文件夹中 我有另一个文件夹 其中包含多个文件 并且可以广泛访问 出于测试目的 我共享了公共文件夹中的所有文件 如果这是正确的共享方式 我不会共享 以下链
  • laravel 5.2 将数据传递到注册视图

    我正在使用 laravel 5 2 我编写了以下命令来自动添加身份验证的路由和视图 php artisan make auth 现在我想将数据传递到注册视图 但我找不到在哪里执行此操作 我认为应该使用如下代码 Route get regis
  • 停止重复 UIView 动画块?

    我有一个 UIView 动画块 它使用UIViewAnimationOptionRepeat UIViewAnimationOptionAutoReverse选项 因此它会继续进行 但在某些时候我需要停止动画 但更重要的是停止它并使视图返回
  • Angular 中使用 rxjs 的用户通知服务?

    我对反应式编程比较陌生 我正在尝试创建一个可以向用户显示通知的 Angular 服务 到目前为止 这就是我所拥有的 https stackblitz com edit angular rxjs notifications file app
  • 当半径增加时如何在 CLLocationManager 中为区域绘制固定圆

    我有一个要求 我必须在 CLLocationManager 中为区域绘制一个圆圈 我已经完成了本准则的要求 CLLocationDegrees latitude 37 33492222 CLLocationDegrees longitude
  • 如何在android中使用XMLStreamWriter编写XMl文件

    我想创建 XML 文件 这是我的以下代码 String fileName jasstech xml XMLOutputFactory xof XMLOutputFactory newInstance XMLStreamWriter xtw
  • glPopMatrix() 喊叫“setup_hardware_state 中不支持纹理格式”

    我正在尝试对 Linux 的私人视频播放器进行一些优化 旨在提高性能 因为播放 MP4 文件对 CPU 的占用很大 自从视频帧采用 YV12 编码并且 OpenGL 不提供显示此格式的本机方法 现在有一段代码在CPU上运行 在将图像发送到G
  • Mongoose - 使用聚合返回单个文档而不是文档数组

    在开始使用聚合来创建文档的时间戳之前 我使用 findOne 这样我可以获得单个对象 但现在我得到一个包含单个对象的数组 是否可以使查询返回单个对象而不是数组 先感谢您 我正在使用的查询 News aggregate match id n
  • 如何使用元数据注释在 Dart 分析器中提供警告消息?

    我创建了一个像这样的元数据注释 class UseInt const UseInt UseInt class Foo Should give a lint warning saying The class should only use i
  • 防止 MEX 文件在 MATLAB 中崩溃

    我有一个 MEX 文件 是我从别人那里 借来 的 用来帮助我编写半自动核检测算法 问题是 MEX 文件偶尔会导致分段错误 但是 如果代码第二次使用相同的参数运行 那就没问题了 我希望有一种try catchMEX 文件的习语 但在周六花了大
  • android 退出时清除应用程序缓存

    我想要做的是在应用程序退出时清除应用程序的缓存 我可以通过以下步骤手动完成此任务 管理应用程序 gt 我的应用程序 gt 清除缓存 gt gt 但我想通过在应用程序退出时编程来完成这项任务 请帮助我 提前致谢 要清除应用程序数据 请尝试这种
  • 使用 Microsoft Graph 查询 AzureAD Graph 扩展属性

    我正在从 Azure AD Graph API 迁移到 Microsoft Graph 因为它现已弃用 以前可以使用以下方式访问用户的扩展属性Microsoft Azure ActiveDirectory GraphClient GetEx
  • 实体框架将两个表列映射到同一相关表键

    我的情况是 我有一张名为Elements 现在我正在创建一个名为Divergences基本上会存储成对的Elements 的目的Divergence是检查是否有两个Elements有不同的答案 Element Divergence Elem
  • 如何检查列表中的所有元素是否符合条件?

    我有一个列表 其中包含许多子列表 每个子列表包含 3 个元素 例如 my list a b 0 c d 0 e f 0 每个子列表的最后一个元素是一个排序标志 每个子列表的初始值为 0 随着我的算法的进展 我想检查该标志是否至少有一个元素为