python如何为list实现find方法


Posted in Python onMay 30, 2022

如何为list实现find方法

string类型的话可用find方法去查找字符串位置:

a_list.find('a')

如果找到则返回第一个匹配的位置,如果没找到则返回-1,而如果通过index方法去查找的话,没找到的话会报错。

如果我们希望在list中也使用find呢?

方法1:独立函数法

def list_find(item_list, find_item):
    if find_item in item_list:
        return item_list.index(find_item)
    return -1

item_list=[1,2,3]
print(list_find(item_list,1),list_find(item_list,4))

缺点:代码太多,麻烦

方法2:if三元表达式(本质同上)

item_list.index(find_item) if find_item in item_list else -1

优点:简单,明了

缺点:item_list在上面出现两次,想想一下,如果item_list是一个比较长表达式的结果(或者函数结果),则会导致代码过长,且会执行2次

方法3:next(利用迭代器遍历的第二个参数)

next((item for item in item_list if item==find_item ),-1)

缺点:如果对迭代器不熟悉,不大好理解

优点:扩展性好,if后面的条件可以不只是相等,可支持更为复杂的逻辑判断

方法4:list元素bool类型

''.join(map(str, map(int, item_list))).find(str(int(True)))

简单容易理解

Python List find方法报错

TypeError: 'str' does not support the buffer interface

deviceList[1].find('device') 

List使用find方法时,报错误:

TypeError: 'str' does not support the buffer interface

In python 3, bytes strings and unicodestrings are now two different types. Bytes strings are b"" enclosed strings

上述语句改为:deviceList[1].find(b'device') 就好了,加了个小b


Tags in this post...

Python 相关文章推荐
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
Python TestCase中的断言方法介绍
May 02 Python
Django model update的多种用法介绍
Mar 28 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
django框架ModelForm组件用法详解
Dec 11 Python
Python运行异常管理解决方案
Mar 09 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
python中封包建立过程实例
Feb 18 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
python实现商品进销存管理系统
May 30 #Python
python如何查找列表中元素的位置
May 30 #Python
Python数组变形的几种实现方法
May 30 #Python
Python Matplotlib绘制动画的代码详解
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 #Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 #Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 #Python
You might like
php学习笔记 数组遍历实现代码
2011/06/09 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
TypeScript入门-接口
2017/03/30 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python类的专用方法实例分析
2015/01/09 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
对python判断是否回文数的实例详解
2019/02/08 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
美德好少年主要事迹
2014/01/29 职场文书
人事文员岗位职责
2014/02/16 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
电力安全事故反思
2014/04/27 职场文书
学校师德师风整改措施
2014/10/27 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS