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简单连接MongoDB数据库的方法
Mar 15 Python
python访问抓取网页常用命令总结
Apr 11 Python
Python 多线程的实例详解
Sep 07 Python
python3实现跳一跳点击跳跃
Jan 08 Python
Python+tkinter模拟“记住我”自动登录实例代码
Jan 16 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
Python模块相关知识点小结
Mar 09 Python
python进度条显示之tqmd模块
Aug 22 Python
Python异常类型以及处理方法汇总
Jun 05 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
JS location几个方法小姐
2008/07/09 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Python2与Python3的区别实例总结
2019/04/17 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
Linux的文件类型
2016/07/05 面试题
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
社区结对共建协议书
2016/03/23 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android