为什么不使用 python 中的 zip() 比较列表中的最后一个元素?

2023-12-07

我正在使用内置函数 zip() 来比较列表中的 2 个元素。

     myList =[11,12,93,14,15,45,56,67,78,11]
        z = 0;
        final = 0 ;
        for x, y in zip(myList, myList[1:]):
            if  x > y :
                z = x

            if  (final<x):
                final = x;
        print final; 

对于此代码,我得到的有效答案为:93

现在,如果我在最后一个索引中添加另一个元素 333

myList =[11,12,93,14,15,45,56,67,78,11,333]
z = 0;
final = 0 ;
for x, y in zip(myList, myList[1:]):
    if  x > y :
        z = x

    if  (final<x):
        final = x;
print final; 

我仍然得到输出为 :93 ,但正确答案为 333 。

有人可以解释一下我错在哪里的逻辑吗?


zip停在最短参数的末尾。myList[1:]总是比myList(前提是列表不为空),所以你得到的最后一对zip is x,y = 11,333:

>>> myList =[11,12,93,14,15,45,56,67,78,11,333]
>>> pairs = zip(myList, myList[1:])
>>> list(pairs)[-1]
(11, 333)

但你只分配final and z到当前值x,它永远不可能是最后一个元素。您可以在列表末尾添加一个无法触发条件的幻像元素:您正在使用混合的较大和较小比较,因此您最好的选择是特殊值“不是数字”float('nan'),它既不大于也不小于任何数字(所有比较都返回False)。对于成对的特殊情况,您可以像这样放置虚拟元素,因为已知第二个参数恰好比较长的元素短一个元素:

>>> pairs = zip(myList, myList[1:]+[float('nan')])
>>> list(pairs)[-1]
(333, nan)

但对于更通用的解决方案,您将需要使用zip_longest来自 itertools,它有效地填充较短参数的末尾,如下所示,直到它们达到最长参数的长度:

>>> pairs = it.zip_longest(myList, myList[1:], fillvalue=float('nan'))
>>> list(pairs)[-1]
(333, nan)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不使用 python 中的 zip() 比较列表中的最后一个元素? 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 如何在不同主机之间移动 Docker 容器?

    我找不到将运行 docker 的容器从一台主机移动到另一台主机的方法 有什么方法可以将我的容器推送到存储库 就像我们对图像所做的那样 目前 我没有使用数据卷来存储与容器内运行的应用程序关联的数据 因此 一些数据驻留在容器内 我想在重新设计设
  • 解释“if”函数中的“条件长度> 1”警告

    我有一个数组 a lt c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0
  • Android:覆盖 Android 相机预览

    我正在使用相机 API 并调用相机 我想在相机预览的顶部显示标题 用于品牌 标题是 jpeg 图像 是否可以 任何帮助表示赞赏 提前致谢 我的代码如下 public class CameraActivity extends Activity
  • git format-patch < 自上次 svn rebase 以来的所有内容 >

    我正在尝试将自上次推送到 svn 服务器以来的所有更改合并为一个大补丁 我可以通过电子邮件发送给我的同事进行审查 我可以这样做吗git format patch 你可以使用git format patch origin master获取自当
  • 闭源程序集“无法验证的代码未通过策略检查”

    我试图在 MSI 安装例程期间从 C 程序中的资源流动态加载一些 购买的 程序集 但我收到 无法验证的代码未通过策略检查 我在线阅读了一些有关使用 clr safe 编译嵌入式程序集的提示 但我没有该选项 有没有办法绕过这个政策检查 Tha
  • Vue.js Router:组件准备就绪时运行代码

    我正在使用 Vue js 及其官方路由器开发一个单页应用程序 我使用路由器加载的每个部分都有一个菜单和一个组件 vue 文件 在每个组件中我都有一些与此类似的代码
  • React Native 和 iOS 模拟器的地理位置错误

    我正在使用react native maps 并使用react native api 进行地理定位 当我通过 API 使用位置时 模拟器上返回的结果显示我在旧金山 而不是我所在的科罗拉多州丹佛市 是否有原因导致我的位置无法显示我所在的位置
  • 使用纯js获取具有特定类的单击元素的下一个元素

    我试图通过以下方式获取具有特定类的第一个元素 该类遵循使用纯 JS 无 JQuery 单击的元素 但 get el nextSibling 不是函数错误 最初我使用的是 JQueryparents next 但想用纯 JS 来做到这一点 c
  • JavaScript 凸面形状上的墙壁碰撞,卡在角落

    这是另一个问题的后续 如何处理玩家与墙角的碰撞 在给出的代码的启发下它的答案 我尝试编写一些新代码 基本上 在原版中 墙壁滑动在墙壁内部效果很好 但我想让它在外部也起作用 所以我根据他的技术制作了一个新的基本代码引擎 var aD var
  • 冲突时,在具有非空约束的 Postgres 中不执行任何操作

    是否不可能利用 ON CONFLICT DO NOTHING 来避免插入和违反非空约束 例如 INSERT INTO public users user user yob sex SELECT mom mom yob F FROM stag
  • Bash 工具从文件中获取第 n 行

    有没有一种 规范 的方式来做到这一点 我一直在使用head n tail 1这确实有用 但我一直想知道是否有一个 Bash 工具专门从文件中提取一行 或一系列行 我所说的 规范 是指一个主要功能就是这样做的程序 head和管道与tail对于
  • 按下菜单按钮后如何将 Apple TV 应用置于后台

    我尝试使用私有方法在按下菜单按钮后将应用程序置于后台 并且以下代码可以正常工作 implementation ViewController UITapGestureRecognizer tapRecognizer void viewDidL
  • Python Seaborn Ridge Plot 教程不起作用

    如果我复制粘贴上给出的示例希博恩网站为了制作 岭图 代码在两个不同的点上失败了 import numpy as np import pandas as pd import seaborn as sns import matplotlib p
  • Git:默认所有文本文件为 unix 换行符

    我知道 gitattributes 中有设置 txt eol lf 还有一个方法是让所有文本文件默认进行转换 text auto 然而 当我尝试将所有文 本文件作为 unix 行结尾时 我注意到这没有任何作用 text lf 这也改变了二进
  • 查询获取最近 7 天的有效信息

    我有一个表 xx asg Effective start date Effective end date Person number 03 jan 2016 31 DEC 4712 12 20 Feb 2015 02 Jan 2016 12
  • 在 Eclipse 中创建简单的 JAX-WS WebService

    我正在尝试在 Eclipse 中创建一个简单的 Web 服务 首先我创建了一个空的java项目并在src文件夹中添加了以下三个文件 问候语 java package com alfaisaliah import javax jws WebS
  • 具有较少列的平面文件连接的 SSIS pkg 将失败

    假设有一个平面文件 F1 txt Column MyCol1 和包 Pkg1 将所述文件加载到 SQL Server 没问题吧 正确的 现在假设有一个平面文件 F2 txt Columns MyCol1 MyCol2 和相同的包 Pkg1
  • 烛台始终位于组合图表谷歌图表中的线条顶部

    我正在使用谷歌图表 并且对 API 非常陌生 现在最有可能满足我的要求的是组合图 这张图表一切都很好 但只有一件事很奇怪 当我尝试带有烛台的线时 无论是哪一根series另一个是在seriesType烛台始终位于线的顶部 有解决此问题的方法
  • 无法将 lambda 表达式转换为类型“System.Delegate”

    这些都不起作用 uiDispatcher Invoke gt uiDispatcher Invoke delegate 我想做的就是在主 UI 线程上调用内联方法 所以我在主线程上调用了它 uiDispatcher Dispatcher C
  • 为什么不使用 python 中的 zip() 比较列表中的最后一个元素?

    我正在使用内置函数 zip 来比较列表中的 2 个元素 myList 11 12 93 14 15 45 56 67 78 11 z 0 final 0 for x y in zip myList myList 1 if x gt y z