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 元类使用说明
Dec 18 Python
python测试驱动开发实例
Oct 08 Python
python编程开发之日期操作实例分析
Nov 13 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
50行Python代码实现人脸检测功能
Jan 23 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
利用python绘制数据曲线图的实现
Apr 09 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
python自动化之如何利用allure生成测试报告
May 02 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
2019十大人气国漫
2020/03/13 国漫
一个改进的UBB类
2006/10/09 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
canvas时钟效果
2017/02/16 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
jquery replace方法去空格
2017/05/08 jQuery
全面解析vue中的数据双向绑定
2017/05/10 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
python实现多进程代码示例
2018/10/31 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python pygame实现球球大作战
2019/11/25 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
企业文化口号
2014/06/12 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle