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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python新手实现2048小游戏
Mar 31 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
Django框架使用mysql视图操作示例
May 15 Python
Python实现时间序列可视化的方法
Aug 06 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
Python中无限循环需要什么条件
May 27 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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
杏林同学录(六)
2006/10/09 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
pandas计算最大连续间隔的方法
2019/07/04 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
golang的文件创建及读写操作
2022/04/14 Golang