Python代码阅读(第44篇):寻找符合条件的元素的位置

本文中的代码实现了列表中符合条件的元素的位置。

[En]

The code read in this article implements the location of eligible elements in the list.

find_index

def find_index(lst, fn):
  return next(i for i, x in enumerate(lst) if fn(x))

EXAMPLES
find_index([1, 2, 3, 4], lambda n: n % 2 == 1) # 0

find_index函数接收一个列表和一个判别函数,返回第一个使判别函数为真的元素的下标。

函数使用列表推导式、 enumerate()next()来返回 lst中第一个 是判别函数 fn的返回为 True的元素的索引。

next(iterator[, default])获取迭代器的下一个元素。如果迭代器耗尽,则返回给定的 default,如果没有默认值则触发 StopIteration

enumerate(iterable, start=0)
返回一个枚举对象。 enumerate()返回的迭代器的 __next__()方法返回一个元组,里面包含一个计数值(从 start开始,默认为 0)和通过迭代 iterable获得的值。如果 start0开始,相当于获取了列表的下标。

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

find_last_index

类似的,可以实现 find_last_index函数,使用 lst[::-1]切片形式,将列表倒序。然后使用 len(lst)和倒序后的列表中第一个符合判别函数的元素的位置,计算该元素在原列表中的位置。

def find_last_index(lst, fn):
  return len(lst) - 1 - next(i for i, x in enumerate(lst[::-1]) if fn(x))

EXAMPLES
find_last_index([1, 2, 3, 4], lambda n: n % 2 == 1) # 2

Original: https://www.cnblogs.com/felixz/p/15661420.html
Author: FelixZ
Title: Python代码阅读(第44篇):寻找符合条件的元素的位置

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/510592/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python-GUI界面设计(tkinter)

    文章目录 前言 一、函数方法 二、导入 三、窗口 * [1]. 创建 [2]. 标题 [3]. 大小 [4]. 背景 [5]. 删除 四、按钮 * [1]. 创建 [2]. 放置(…

    Python 2023年8月1日
    059
  • 【python三维深度学习】python三维点云从基础到深度学习

    点云法向量、质心、体素、三角面。含数据与python源码。 旋转、平移、 立体几何投影理论分析、投影变换、仿射变换、缩放等,特别是包含了基于法向量的点云旋转,可以将激光雷达地面点云…

    Python 2023年8月1日
    061
  • k8s 中的 Pod 细节了解

    k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1、自主式 Pod 2、控制器管理的 Pod 静态 Pod Pod的生命周期 Po…

    Python 2023年10月21日
    047
  • carla入门

    一、安装 1.1 windows下安装 下载zip文件安装 到git下直接下载windows版本, 下面可以选择版本, 这里我用最新版 在解压的文件中的…\Python…

    Python 2023年9月17日
    092
  • 运算库之numpy(统计函数运算)

    1.Numpy的统计函数介绍1.最大值API:方式一:np.max(a, axis=None)a:需要传入一个n维数组axis:指定对哪个轴作变换return:如果是一维数组的话,…

    Python 2023年8月28日
    059
  • 用python爬取jk小姐姐照片慢慢看「本地直接下载版」

    我这里简单把下载写了下,直接运行代码就能下载,默认主下载目录是 D:\bcy ,一个用户图片一个文件夹,也可以自己修改文件主文件夹,没有文件夹会自动创建 只需要安装Python3环…

    Python 2023年5月24日
    098
  • numpy的索引和切片

    #基础索引 ##一维数组 np01[index] 根据索引查询 np01[index] 根据索引修改数据 np01[index]=值 np01 = np.arange(10)#[0…

    Python 2023年8月27日
    057
  • 2023java面试真题

    ​1.下列代码输出结果是() int index = 100; while ( index > 0 ){ index++; if ( index = =100 ){ brea…

    Python 2023年11月6日
    029
  • pytest 之 fixture的调用

    pytest 之 fixture的调用 * – fixture的调用 – + 将fixture函数名称,作为用例的参数 + * 只返回前置中的一个参数 * …

    Python 2023年9月11日
    063
  • 彻底掌握Makefile(三)

    彻底掌握Makefile(三) 前言 在前面的文章彻底掌握Makefile(一)和彻底掌握Makefile(二)当中,我们简要的介绍了一些常见的makefile使用方法,在本篇文章…

    Python 2023年10月21日
    048
  • flask 支付宝的使用

    需要去官方网页里面登录自己的账号 https://open.alipay.com/ 登录后需要保存一些数据 进入网址之后进行登录=》控制台=》沙箱 保存APPID 保存公钥&amp…

    Python 2023年8月12日
    035
  • 用ChatGPT写代码学物联网,10分钟模拟设备并查看数据

    ChatGPT是时下火热的AI自然语言引擎,啥都知道啥都会,今天咱们就使用ChatGPT来 写一段python代码,模拟一个温湿度传感器,持续的给服务器发数据,并在物联网管理软件T…

    Python 2023年11月4日
    040
  • python3使用scrapy爬取图片示例

    python3使用scrapy爬取彼岸图网 安装scrapy 创建项目 项目结构 具体实现 * image.py item.py pipelines.py settings.py …

    Python 2023年10月2日
    051
  • Python写入EXCEL

    zstarling pd.ExcelWriter写入 open写入方法 * write与writelines对比 表格Dataframe形式的写入 for、with 位置对比 pd…

    Python 2023年8月1日
    046
  • Python | 内置函数(BIF)

    Python内置函数 | V3.9.1 | 共计155个 还没学完, 还没记录完, 不知道自己能不能坚持记录下去 1.ArithmeticError 2.AssertionErro…

    Python 2023年5月24日
    092
  • matplotlib的annotate的箭头类型详解

    未完成。。。 官网annotate Axes.annotate(text, xy, xytext, arrowprops) annotate的箭头类型由arrowprops参数决定…

    Python 2023年9月3日
    052
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球