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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
TensorFlow如何实现反向传播
Feb 06 Python
python逆序打印各位数字的方法
Jun 25 Python
Python正则表达式和re库知识点总结
Feb 11 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
Python识别html主要文本框过程解析
Feb 18 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
Python3.10的一些新特性原理分析
Sep 15 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
js获取form的方法
2015/05/06 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
angularjs http与后台交互的实现示例
2018/12/21 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
django用户登录和注销的实现方法
2018/07/16 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
python 初始化一个定长的数组实例
2019/12/02 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
python如何写个俄罗斯方块
2020/11/06 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
前台领班岗位职责
2013/12/04 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
人事经理岗位职责
2014/04/28 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
利用python做表格数据处理
2021/04/13 Python
python playwright 自动等待和断言详解
2021/11/27 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python