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常用模块介绍
Nov 21 Python
玩转python爬虫之爬取糗事百科段子
Feb 17 Python
Linux下为不同版本python安装第三方库
Aug 31 Python
Python实现网站注册验证码生成类
Jun 08 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
python 三元运算符使用解析
Sep 16 Python
django自带的权限管理Permission用法说明
May 13 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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
example1.php
2006/10/09 PHP
php cout<<的一点看法
2010/01/24 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python实现飞船大战
2020/04/24 Python
Python图像读写方法对比
2020/11/16 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
技术总监个人的自我评价范文
2013/12/18 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
维稳承诺书
2015/01/20 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android