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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
Python实现的密码强度检测器示例
Aug 23 Python
python分析作业提交情况
Nov 22 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
python列表list保留顺序去重的实例
Dec 14 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
python神经网络学习 使用Keras进行简单分类
May 04 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
展会邀请函范文
2014/01/26 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
初中英语课后反思
2014/04/25 职场文书
宣传标语大全
2014/07/01 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
领导干部作风建设总结
2014/10/23 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
优秀班组事迹材料
2014/12/24 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
pytorch中[..., 0]的用法说明
2021/05/20 Python