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 相关文章推荐
python目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
Python2中的raw_input() 与 input()
Jun 12 Python
python开发之文件操作用法实例
Nov 13 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
Python中 map()函数的用法详解
Jul 10 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
Python 语言实现六大查找算法
Jun 30 Python
python异步的ASGI与Fast Api实现
Jul 16 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实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php实现评论回复删除功能
2017/05/23 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
置业顾问岗位职责
2014/03/02 职场文书
党课心得体会范文
2014/09/09 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
学历证明样本
2015/06/16 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python