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 相关文章推荐
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
python调用其他文件函数或类的示例
Jul 16 Python
Python实现时间序列可视化的方法
Aug 06 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python中的With语句的使用及原理
Jul 29 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
Python 如何安装Selenium
May 06 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中echo,print_r与var_dump区别分析
2014/09/29 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
php表单处理操作
2017/11/16 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
解析js如何获取css样式
2016/12/11 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
全面分析JavaScript 继承
2019/05/30 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
用python实现对比两张图片的不同
2018/02/05 Python
python实现简单遗传算法
2018/03/19 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python3开发环境搭建详细教程
2020/06/18 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
世界读书日的活动方案
2014/08/20 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL