解包从函数返回的可变长度列表

2024-01-09

好的,我正在定义一个函数,它接受可变数量的输入并限制每个输入

def clamp(*args):
    return [ max(min(arg, 0.8), 0.2) for arg in args]

我喜欢这个函数的可读性:

a = 0.12
b = 0.45
c = 0.992

A,B,C = clamp(a,b,c)

print A,B,C

>> 0.2, 0.45, 0.8

这利用了 python 将列表自动解包为元组的功能。我遇到的麻烦是,如果我只给出一个参数,python 不会从列表中解压它,我会得到一个列表而不是浮点数,这很烦人。

print clamp(a)

>> [0.2]

到目前为止,我的解决方案是检查列表的长度并在只有一个元素时对其进行索引:

def clamp(*args):
    result = [ max(0.2, min(0.8,arg)) for arg in args]
    return result if len(result) > 1 else result[0]

a = 0.12
print clamp(a)

>> [0.2]

我的问题是,有没有更惯用的方法来做到这一点?


我不太确信,但这是一个替代解决方案

>>> clam = lambda a: max(min(a, 0.8), 0.2)

>>> def clamp(a, *args):
...     if args:
...        return [ clam(arg) for arg in (a,)+args]
...     else:
...        return clam(a)
... 
>>> clamp(123, 123)
[0.8, 0.8]
>>> clamp(123)
0.8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解包从函数返回的可变长度列表 的相关文章

  • 使用 Pandas 数据框中的字数统计来删除仅包含一个单词的行

    我有一个包含 2 条记录的数据框 数据 id text 0001 The farmer plants grain 0002 tuna 我想统计一下里面的单词数text该数据框的列并删除只有一个单词的行 我知道如何计算单词数 count da
  • 将嵌套循环计算转换为 Numpy 以加速

    我的Python程序的一部分包含以下代码段 其中一个新的网格 是根据旧网格中找到的数据计算的 网格是二维浮点数列表 该代码使用了三个 for 循环 for t in xrange 0 t step for h in xrange 1 hei
  • 如何使用 QWebView 显示 html。 Python?

    如何在控制台中显示 HTML 格式的网页 import sys from PyQt4 QtGui import QApplication from PyQt4 QtCore import QUrl from PyQt4 QtWebKit i
  • matplotlib:在次要标签下绘制主要刻度标签

    这看起来应该很容易 但我不知道该怎么做 我有一个 X 轴上有时间的图 我想设置两组刻度 小刻度显示一天中的小时 大刻度显示日 月 所以我这样做 set date ticks to something sensible xax ax get
  • 使用记事本打开文本文件作为python中的帮助文件?

    我想为我的简单程序的用户提供打开帮助文件的机会 以指导他们如何充分利用我的程序 理想情况下 我希望在 GUI 上有一个蓝色的小帮助链接 可以随时单击该链接 从而在本机文本编辑器 例如记事本 中打开 txt 文件 有没有一种简单的方法可以做到
  • VS Code Pylint 在缺失的函数/类文档字符串上用蓝色下划线突出显示整个函数

    这种情况突然开始发生 当出现缺少函数文档字符串警告时 python pylint 会用蓝色波浪线突出显示整个函数 我怎样才能让它只突出显示函数定义或在定义行上制作一个小指示器 在开发时突出显示整个文件是非常烦人的 这是缺少类文档字符串的示例
  • 从另一个文件覆盖函数中的变量

    一 总结 我不知道如何从另一个文件覆盖函数中的变量 2 示例 2 1 配置 I use logbook http logbook pocoo org and pyfancy https github com ilovecode1 Pyfan
  • Selenium 上的切换窗口

    我在 Python 中使用 Selenium 和 PhantomJS 我需要打开一个新窗口并控制它 出于测试目的 我这样做 from selenium import webdriver driver webdriver PhantomJS
  • 带有redirect_uri的social-auth-app-django Facebook后端状态

    我知道我的问题听起来像是重复的 但我到处寻找但没有找到任何解决方案 我正在努力为我的 django web 应用程序实现社交登录 到目前为止 谷歌 推特和雅虎登录均按预期工作 但facebook总是给出以下错误 URL 被阻止 此重定向失败
  • 如何列出静态链接的 python 版本中可用的所有 openssl 密码?

    在python 2 7 8到2 7 9升级中 ssl模块从使用更改为 DEFAULT CIPHERS DEFAULT aNULL eNULL LOW EXPORT SSLv2 to DEFAULT CIPHERS ECDH AESGCM D
  • 如何避免在matplotlib中调用latex(输出到pgf)

    我使用 matplotlib 及其 pgf 后端来生成包含在 LaTeX 投影仪文档中的绘图 当我使用未定义的乳胶命令时 我遇到了麻烦 但对于我的应用程序 我不需要 matplotlib 来使用 Latex 生成标签或注释 我只想要正确的
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • 如何在Python中获取套接字的外部IP?

    当我打电话时socket getsockname 在套接字对象上 它返回我的机器的内部 IP 和端口的元组 但是 我想找回我的外部IP 最便宜 最有效的方式是什么 如果没有外部服务器的配合 这是不可能的 因为您和另一台计算机之间可能存在任意
  • Pandas 使用什么规则来生成视图和副本?

    我对 Pandas 在决定数据帧中的选择是原始数据帧的副本或原始数据帧的视图时使用的规则感到困惑 例如 如果我有 df pd DataFrame np random randn 8 8 columns list ABCDEFGH index
  • Google App Engine self.redirect() POST 方法

    在 GAE Python 中 使用 webApp 框架 调用 self redirect some url 通过 GET 方法将用户重定向到该 URL 是否也可以通过带有一些参数的 POST 方法进行 重定向 如果可以的话 怎样做 Than
  • django 南迁移,不设置默认值

    我使用 South 来迁移我的 Django 模型 然而 南方有一个令人讨厌的错误 它不会在 Postgres 数据库中设置默认值 例子 created at models DateTimeField default datetime no
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • *Python 内的 Kaggle API 文档?

    我想写一个python从 Kaggle com 下载公共数据集的脚本 Kaggle API 是用 python 编写的 但是我能找到的几乎所有文档和资源都是关于如何在命令行中使用该 API 的 而关于如何使用kaggle图书馆内python
  • Pandas:合并多个数据框并控制列名称?

    我想将九个 Pandas 数据帧合并到一个数据帧中 对两列进行联接 控制列名称 这可能吗 我有九个数据集 它们都有以下列 org name items spend 我想将它们加入到具有以下列的单个数据框中 org name items df
  • 捕获 SQLAlchemy 异常

    我可以使用什么捕获 SQLAlechmy 异常的上层异常 gt gt gt from sqlalchemy import exc gt gt gt dir exc ArgumentError CircularDependencyError

随机推荐

  • 如何在test-cafe中使用数据发出post请求?

    我是 api 测试的初学者 我正在使用test cafe我已经写了测试来制作GET请求使用请求钩子工作正常 我能够获取数据 但是当我尝试制作时POST请求使用相同的请求钩子并且我在发出请求时无法发送数据 因为它需要是缓冲区类型 我无法将 J
  • 在 redux-observable 中编写和排序多个史诗

    我有一个问题不知道如何解决 我有两个史诗向 api 发出请求并更新商店 const mapSuccess actionType gt response gt type actionType SUCCESS payload response
  • 在单元测试中获取控制器的编译模板

    我有以下控制器 angular module app controller userList scope appRules function scope appRules scope isUserInRole function user r
  • 如何直接从 Rails 控制器返回 HTML?

    我的模型对象之一有一个 文本 列 其中包含网页的完整 HTML 我想编写一个控制器操作 它直接从控制器返回此 HTML 而不是像控制器上的其他操作一样通过 erb 模板传递它 我的第一个想法是将此操作放入一个新控制器中 并制作一个具有空布局
  • 带计数的堆叠条形图中 geom_text 的百分比

    我想要一个堆叠条形图 其中包含基于计数的百分比 我几乎达到了我想要的 但文本中的每个值都是 100 而不是真正的百分比 我认为我的代码中有一个小错误 但我找不到它 ggplot mtcars aes fill factor gear x f
  • 改进通过 JSON 将服务器数据库镜像到客户端数据库的过程?

    我有一个现成的适用于 iPad 的企业 非 AppStore 旧版 iOS 应用程序 我需要重构它 它是由另一位开发人员编写的 他是我当前工作的前任 该应用程序通过 JSON 从具有 MSSQL 数据库的服务器获取数据 数据库模式有大约 3
  • 交错?锁链?由一系列不同的delay()和duration()的d3转换寻址的单个DOM元素

    正如所解释的here http bost ocks org mike transition per element 您可以安排连续的转换驱动的属性值更改singleelement 使用transition transition 它创建一个新
  • 从另一个页面的代码隐藏中获取 ASP.Net 页面的 URL

    我试图从页面对象中找到确定页面 url 的方法 看来你只能获取当前上下文的路径 一个页面可以有多个 url 例如 我家里有一台服务器正在运行 并且该站点的 URL 根据我从何处查看而有所不同 当我在家时 我只使用内部服务器名称 这样流量就不
  • Java 9 中的 native2ascii 可执行文件发生了什么

    我正在尝试使用 java 9 编译我的应用程序 但它失败了 因为 native2ascii 可执行文件不存在 Java 9 中删除了吗 还有其他工具可以做同样的事情吗 是的 native2ascii 在 Java 9 中被删除了 错误报告以
  • 从 url 到 JSON 到 HTML

    我目前正在尝试学习 RESTful API 并将它们实现到用例中 我想做的一件事是将带有 json 有效负载的 url 从一台服务器加载到单独的 Web 服务器中 以在表上显示数据 我对此不太熟悉 所以我试图找到最好的方法来做到这一点 我正
  • 如何在C++中创建具有动态对齐要求的对象?

    C 中分配和使用具有动态指定对齐方式的缓冲区的正确方法是什么 我想到的用例是 Vulkan 动态统一缓冲区 请参阅上一个问题 https stackoverflow com q 45458918 9723177其中抽象地讨论了所需的过程 其
  • 如何在 JavaScript 中监听三次点击?

    如果这是双击 window addEventListener dblclick function event false 如何捕捉三次点击 这适用于 Google Chrome 中的固定选项卡 您需要编写自己的三次点击实现 因为不存在可以捕
  • 与 Sql Geometry 字段不同的棘手 sql

    我有一个与以下不兼容的sql语句Sql Geometry输入所以我正在尝试修改它以使其正常工作 它的基本要点是这样的 Select distinct A B C D SHAPE FROM TABLE1 UNION SELECT A B C
  • 如何在Python中按下某个键时停止程序?

    我有一个无限循环的程序 每 5 秒打印一次 程序正在运行 我想在按结束键时停止它 因此 我创建了一个按键侦听器 如果按下结束键 该侦听器将返回 false 如果我没有无限循环 那应该可行 即使我处于无限循环中 我也希望它能够工作 这是我的代
  • TabControl / TabPanel / TabItem 的 WPF 样式

    这是关于 WPF TabControl TabItem 和 TabPanel 的新手问题 StackOVF 上有一个相关问题 我很高兴在我的应用程序中使用了一个答案 这是答案的链接以及代码片段 WPF TabControl 中的中心 Tab
  • Yii2 isGuest 在控制台应用程序中给出异常

    在我使用时的控制台应用程序中Yii app gt user gt isGuest它给出了以下例外 Exception yii base UnknownPropertyException with message Getting unknow
  • Ifstream 读取函数未加载到向量中

    我对编程有点陌生 所以我不确定如何搜索这个问题 而且我知道我问了另外两个关于这个问题的问题 但我似乎无法让它工作 我遇到了一个问题 我有一个向量 vector
  • 引用的程序集 Dapper 没有强名称

    我从 NuGet 安装了 dapper 当我尝试编译代码时出现错误 引用的程序集 Dapper 没有强名称 这是什么原因造成的 您看到该错误是因为您使用的包没有强名称 即它不使用签名 签名可确保程序集的真实性 看不签署 NET 程序集有什么
  • 如何在gitlab-ci脚本中执行git命令

    我想更改文件并在 gitlab ci 管道内提交更改 我尝试在脚本中编写普通的 git 命令 script git clone email protected cdn cgi l email protection cd project fi
  • 解包从函数返回的可变长度列表

    好的 我正在定义一个函数 它接受可变数量的输入并限制每个输入 def clamp args return max min arg 0 8 0 2 for arg in args 我喜欢这个函数的可读性 a 0 12 b 0 45 c 0 9