Python 2 与 Python 3 - 三个参数的映射行为有何差异?

2023-12-23

以下代码在 Python 2 和 Python 3 中的行为有所不同:

all(map(lambda x,y: x, [1, 2], [1, 2, 3]))

Python 2 给出False而Python 3给出了True. The 文档 https://docs.python.org/2/library/functions.html#map对于 Python 2 来说它将提供None如果较短的列表已用尽但 Python 3doesn't https://docs.python.org/3/library/functions.html#map去做。

我正在编写一个由于某种原因确实需要保持长度的代码。获得旧行为的最干净的方法是什么?我知道我可以使用from past.builtin import map as old_map,但是有没有更优雅的解决方案可以在这两个版本中工作?


本质上,map参数有多个可迭代对象将zipiterables,然后使用来自的元组调用该函数zip作为 var-args。因此,您可以使用以下命令获得相同的行为itertools.starmap https://docs.python.org/3/library/itertools.html#itertools.starmap and zip:

>>> a = [10, 20]
>>> b = [1, 2, 3]
>>> f = lambda x, y: x
>>> list(map(f, a, b))
[10, 20]
>>> from itertools import starmap
>>> list(starmap(f, zip(a, b)))
[10, 20]

然后你想要的行为可以通过替换来实现zip with itertools.zip_longest https://docs.python.org/3/library/itertools.html#itertools.zip_longest:

>>> from itertools import starmap, zip_longest
>>> list(starmap(f, zip_longest(a, b)))
[10, 20, None]

两个函数均来自itertoolsPython 2 中也存在,只不过第二个名为izip_longest https://docs.python.org/2/library/itertools.html#itertools.izip_longest反而。你可以只import ... as ...来解决这个问题。

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

Python 2 与 Python 3 - 三个参数的映射行为有何差异? 的相关文章

  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 检查当前日期是否在两个日期之间 Oracle SQL

    我想选择1如果当前日期位于 Oracle SQL 的 2 个日期之间 看完其他问题后我写了一条SQL https stackoverflow com questions 2369222 oracle date Between query h
  • 如何从 Java 代码调用 Excel VBA 宏?

    我需要通过 Java 从数据库获取的数据生成 Excel 工作表 为此 我需要在生成 Excel 时调用一些 VBA 宏函数 谁能帮助我如何从 Java 代码调用 VBA 宏 我不太了解您从数据库中的数据生成 Excel 工作表的总体方法
  • Mac OS X 上有好的图形化 Git 和 Hg/Mercurial 客户端吗?

    我正在 Mac OS X 上寻找引人注目的 Git 和 Mercurial 客户端 到目前为止 我发现的大多数客户端都没有我预期的那么引人注目 有些客户端甚至是用 Ruby 或 Tcl Tk 编程的 在我看来 这些客户端在操作系统集成方面并
  • OS X 终端在运行“source kvm.sh”后挂起安装 vNext KVM

    我正在尝试在我的 Macbook 上安装 vNext 但是当我运行时source kvm sh终端挂起 我的设置 OSX 10 9 5 小牛队 单声道3 10 0 我的问题 我按照 GitHub 存储库中在 OS X 上安装 vNext 的
  • “创建新的视觉类”按钮在 Eclipse 上不可点击

    我安装了一个新的 GUI 设计器软件 然后按要求重新启动了 eclipse 但是当 eclipse 重新打开时 我无法单击 创建新的视觉类 按钮 它是可点击的 但它不执行任何操作 我必须单击它才能安装工具包并创建新的 jframe 我从以下
  • 针对玩笑中抛出的错误对象进行断言

    我有一个抛出对象的函数 我如何断言开玩笑地抛出了正确的对象 it should throw gt const errorObj myError name myError desc myDescription const fn gt thro
  • 如何让 karma 浏览器使用深色主题?

    我开始在 Angular 应用程序中使用 karma 并希望将浏览器主题更改为深色 我想知道配置文件中是否有任何地方可以注入简单的 css 或使用添加 js 文件来注入这些样式 例如业力风格 js var css html backgrou
  • 使用全日历以 3 天的事件块跳过周末和分割日

    我有一个关于名为 fullcalendar 的插件的问题 可以在此处查看https fullcalendar io docs event data https fullcalendar io docs event data 我想要实现的是对
  • Weka中的堆叠算法是什么?它实际上是如何运作的?

    基础分类器的结果是由投票系统选择的 然后元分类器在输入时实际上得到了什么 整个分类器还是只是错误分类的分类器 如果可以用像这个链接这样的简单示例来解释整个机制 那将会很有帮助Weka classifiers meta vote 中的多数投票
  • 如何使用迁移的 HTML 内容为 Gatsby 创建博客条目

    我正在尝试迁移博客 并且可以提取 HTML 格式的帖子以及标题 关键字 数据 元描述等 我如何使用它们在 GatsbyJS 中创建博客文章 我只能找到使用 Markdown 的说明 由于复杂的格式和一些内联 CSS 样式 手动迁移数百个并将
  • 使用正则表达式格式化电话号码[重复]

    这个问题在这里已经有答案了 可能的重复 用于电话号码验证的综合正则表达式 https stackoverflow com questions 123559 a comprehensive regex for phone number val
  • 字段只读和组属性

    我希望在 Openerp 6 1 视图中将字段设置为只读 我希望该字段对于除特定组之外的所有组都是只读的 假设经理应该能够编辑它 而其他人应该只能查看 我不清楚如何在视图中做到这一点 请建议 谢谢 你只需创建一个功能域 http doc o
  • 在渲染组件之前运行 useEffect 钩子

    我在 App js 文件中使用了一个 useEffect 挂钩 它将数据放入我需要在我的应用程序中使用的 redux 存储中 但它在 useEffect 运行之前渲染 因此数据未定义 useEffect 然后正确运行 我需要 useEffe
  • 在 bootstrap-datetimepicker 中设置默认时间

    我想设置默认时间这个日期时间选择器 http tarruda github io bootstrap datetimepicker as 00 01当前日期 以前有人尝试过吗 经历了一段艰难的时期 看起来很简单 startdatetime
  • Form2上Form1的C#访问方法

    我的项目中有 2 个表格 Form1 是主窗体 在那里 我有一个用于打开 Form2 的按钮 一个 ListView 和一个调用 url 并向 ListView 提供从 url 获取的数据的方法 Form2 有一个 URL 文本框和一个 确
  • 使用 tweepy 的流式 api 仅返回倒数第二条推文,而不返回最后一条推文

    我不仅对 python 很陌生 而且对编程都很陌生 所以我非常感谢你的帮助 我正在尝试使用 Tweepy 过滤检测来自 twitter 流 API 的所有推文 我已按用户 ID 进行过滤 并确认推文正在被实时收集 HOWEVER 看来只有最
  • Rails 6 Zeitwerk“弃用警告:初始化自动加载常量...”,但我不知道在哪里?

    我发誓我已经阅读了这些文档 并且我认为我对这些原理有了基本的了解 但我一生都无法弄清楚我在哪里不恰当地加载了这些常量 我正在升级一个最初是 Rails 5 2 的应用程序 当我运行 RSpec 服务器 本地控制台等时 我收到此警告 DEPR
  • 如何从 PySide QAbstractItemModel 子类向 QML ListView 提供数据?

    我正在 PySide 中编写一个具有 QML UI 的应用程序 我在 Python 中对 QAbstractListModel 进行了子类化 class MyModel QtCore QAbstractListModel def init
  • VBA过滤和发送电子邮件

    我正在尝试自动化我们发送给各个堆栈持有者的电子邮件过程 我想根据公司代码过滤D列并将电子邮件发送给O列中列出的人员 电子邮件不应重复 并且还需要包含抄送 不重复 下面是正在尝试的VBA 但无法包含TO和CC Sub Send Row Or
  • Python 2 与 Python 3 - 三个参数的映射行为有何差异?

    以下代码在 Python 2 和 Python 3 中的行为有所不同 all map lambda x y x 1 2 1 2 3 Python 2 给出False而Python 3给出了True The 文档 https docs pyt