Python 过滤器/最大组合 - 检查空迭代器

2023-11-22

(使用Python 3.1)

我知道这个问题已经被问过很多次,用于测试迭代器是否为空的一般问题;显然,对此没有简洁的解决方案(我猜是有原因的 - 迭代器在被要求返回下一个值之前并不真正知道它是否为空)。

不过,我有一个具体的例子,希望我能从中编写出干净且 Python 的代码:

#lst is an arbitrary iterable
#f must return the smallest non-zero element, or return None if empty
def f(lst):
  flt = filter(lambda x : x is not None and x != 0, lst)
  if # somehow check that flt is empty
    return None
  return min(flt)

有更好的方法吗?

编辑:对于愚蠢的符号感到抱歉。函数的参数确实是一个任意的可迭代对象,而不是一个列表。


def f(lst):
  flt = filter(lambda x : x is not None and x != 0, lst)
  try:
    return min(flt)
  except ValueError:
    return None

min throws ValueError当序列为空时。这遵循常见的“更容易请求宽恕”范例。

编辑:无例外的基于归约的解决方案

from functools import reduce
def f(lst):
  flt = filter(lambda x : x is not None and x != 0, lst)
  m = next(flt, None)
  if m is None:
    return None
  return reduce(min, flt, m)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 过滤器/最大组合 - 检查空迭代器 的相关文章

  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • 具有 Surface 输入的 MediaCodec:生成分块输出

    我正在尝试通过 CameraPreview 数据生成短的连续 mp4 文件MediaCodec createInputSurface 然而 重新创建MediaCodec与其关联的 Surface 需要停止相机以允许再次调用mCamera s
  • XmlSerializer 不使用 sgen 创建的 XmlSerializers.dll

    在我的 Visual Studio 2010 项目中 我使用以下 Post Build 事件命令行来使用 sgen 创建 XmlSerializers dll 构建后事件 ProgramFiles Microsoft SDKs Window
  • Google+ 照片 api [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有 Google 照片 gdata API 吗 我正在使用谷歌 picasa API但 picasa 对照片有 1 GB 的限制 我想使用我的脚本上
  • 使用 PHP,如何访问从 Stripe API 返回的受保护的 _values 属性?

    我正在整合条纹API与 CMS 我需要归还 values查询中的属性作为数组 以便数据可用作 CMS 中的模板变量 但它始终受到保护 我一直在使用反思类获取数据 但现在我正在使用 Stripe Stripe Plan all 我必须多次调用
  • Pip 选择了错误的路径

    我使用的是 Windows 10 我摆脱了 python 3 8 并安装了 3 7 作为系统上唯一的 python 版本 当尝试使用 pip 安装库时 我现在收到错误 Fatal error in launcher Unable to cr
  • Task.WaitAll() 未按预期工作

    我正在尝试弄清楚如何使用 Task 类 过去我一直使用常规的 Thread 类 但我正在尝试掌握所有异步编程 作为示例 我创建了一个包含所有代码的主 Winforms 应用程序 我的问题的相关代码是 Relevant delegates p
  • 按钮不透明度/透明度

    主要 xml
  • 在 Vuejs 中将数据从子级传递到父级(有那么复杂吗?)

    我读过 vuejs 从子组件更新父数据 https forum vuejs org t passing data back to parent 1201 2 概念是相同的 我需要将数据对象从子级传递给父级 我用过 emit将数据传递给父组件
  • 如何使用php将数据插入tally?

    我已经使用此代码从 tally erp 9 0 获取数据
  • Web 应用程序中的静态变量

    我可以在 Web 应用程序中使用静态变量吗 static 的替代品是什么 当我在页面中使用静态变量并且多个用户使用该应用程序时 它会产生冲突数据 不正确的数据 使用静态成员有哪些限制 静态成员在内存中共享吗 考虑将共享变量存储在 HttpA
  • 如何将 font Awesome 合并到 dart 组件中?

    以下 html 在文本左侧显示了一个漂亮的相机图标 当尝试设计聚合物组件的样式时 这是如何实现的 p i class fa fa camera retro fa lg i Cool camera p 具体来说 链接应该包含在哪里 ap
  • 在 Rails 开发中加载类后代

    当我在本地进入 Rails 控制台时 我需要能够从控制器看到所有类后代 我有这个Api BaseController我所有的 Api 控制器都继承自它 我遇到的问题是 当我跳到 Rails 控制台检查后代中的 Api 控制器时 它会显示为空
  • 无法从 Ldapmain 对您进行身份验证,因为“user.name 的凭据无效”

    I use debian 9 gitlab ce 11 10 4 ce 0 通过 apt 进行综合安装 openldap 2 4 44 ldap配置 已配置 etc ldap ldap conf BASE dc serverX dc lan
  • Paramiko / scp - 检查远程主机上是否存在文件

    我正在使用 Python Paramiko 和 scp 在远程计算机上执行一些操作 我使用的一些机器要求文件在其系统上本地可用 在这种情况下 我使用 Paramiko 和 scp 来复制文件 例如 from paramiko import
  • .NET 文件系统包装库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 由于某种原因我找不到一个 但肯定有人已经创建了一个 NET IO 库包装器 我希望能够模拟对 File Exists 等的调用 而内置的静态方法对此
  • 绑定到 DataTable 的滚动事件

    我需要绑定到设置为垂直滚动的 DataTable 的滚动事件 很明显 简单的事件绑定是行不通的 table tbody on scroll function alert 我创建了一个demo here 有谁知道可以执行此操作的 API 方法
  • .NET 中每个文件规则一个类? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我遵循这条规则 但我的一些同事不同意它 并认为如果一个类较小 它可以与其他类留在同一个文件中 我经常听到的另一个论点是 连微软都不这样做 那我们为什么要这样做呢 对此 普遍的共识是什么 在
  • 模板概念进入了 c++14 吗?

    概念是一个很好的功能 例如 当模板实例化出现问题时 它可以用可读的消息替换丑陋的编译器错误输出 不幸的是他们没有得到to C 11 有人知道它是否进入了 C 14 吗 No but 对 Bjarne Stroustrup 的采访表示它们将被
  • 如何将 FOS\RestBundle 的默认格式指定为 json?

    我对应的配置是 fos rest view view response listener force sensio framework extra view annotations false 将路线指定为确实很烦人 Route jobs
  • Python 过滤器/最大组合 - 检查空迭代器

    使用Python 3 1 我知道这个问题已经被问过很多次 用于测试迭代器是否为空的一般问题 显然 对此没有简洁的解决方案 我猜是有原因的 迭代器在被要求返回下一个值之前并不真正知道它是否为空 不过 我有一个具体的例子 希望我能从中编写出干净