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实现多线程网页爬虫
Sep 06 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
python flask 多对多表查询功能
Jun 25 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
django 控制页面跳转的例子
Aug 06 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
python为QT程序添加图标的方法详解
Mar 09 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
python给list排序的简单方法
Dec 10 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脚本的10个技巧(5)
2006/10/09 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
url地址自动加#号问题说明
2010/08/21 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python使用webbrowser浏览指定url的方法
2015/04/04 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
公益活动邀请函
2014/02/05 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
酒店端午节活动方案
2014/08/26 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书