python如何为list实现find方法
作者:csdn_yuan88 发布时间:2022-01-14 09:15:56
标签:python,list,find
如何为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
来源:https://blog.csdn.net/u011331731/article/details/107898634
0
投稿
猜你喜欢
- 环境配置pip install pyqt5 (安装pyQT5库):pyuic5包含在内pip install pyqt5-tools (安装
- 如下所示:import pandas as pddata = pd.read_excel('123.xls','Sh
- 本文实例讲述了php+Memcached实现简单留言板功能。分享给大家供大家参考,具体如下:MyPdo.php<?phpclass M
- 类:在HTML中当表现class属性的时候,人们可以用点(.)号来作为~=号的一个替代选择,所以div.value等同于div[class~
- 众所周知windows平台漏洞百出,补丁一个接一个,但总是补也补不净。我把我所知道的看asp源码的方法总结了一下,并且用c#写了个应用程序来
- 来看看javascript怎么实现自动点击超级链接吧,主要使用了js中的onclick事件。这里推荐大家看看这篇文章js鼠标事件大全。看了这
- 微软在今天早上发布新的安全通告证实,一处远程执行代码漏洞影响到了整个SQL Server产品线。该漏洞的入侵代码在两周前已经被公布在互联网上
- 在Vista IIS 7 中用 vs2005 调试 Web 项目核心是要解决以下几个问题:1、Vista 自身在安全性方面的User Acc
- 因为我闲来无事,所以准备找一部电影来看看。 然后我找到了种子搜索网站,可是这类网站的弹窗广告太多,搞得我很烦。所以我就想着自己用python
- Memento备忘录模式 备忘录模式一个最好想象的例子:undo! 它对对象的一个状态进行了'快照', 在你需要的时候恢复原
- Oracle客户端精简后的文件,可以实现数据库的通信,直接和软件打包: 第一步:拷贝文件:主要是四个目录:bin,nls,oracore,N
- 1. 引言之前已经有博客专门介绍了Python中的列表生成式,可能大家还不太擅长。这里推荐九个Python列表生成式的面试题(从简单到困难排
- python3版本的Scapy--Scapy3k来实现一个简单的DDos。首先实现SYN泛洪攻击(SYN Flood,是一直常用的DOS方式
- 本文实例讲述了PHP共享内存使用与信号控制。分享给大家供大家参考,具体如下:共享内存共享内存的使用主要是为了能够在同一台机器不同的进程中共享
- 最近经常需要出一些临时性的报表,于是就用python 的smtplib 和email 两模块写了个小程序,当数据处理完后通过邮箱把报表文件从
- 最近需要各种转格式,这里对相关代码作一个记录,方便日后查询。xlsx文件转csv文件import xlrdimport csvdef xls
- Python3 解释器Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /us
- 一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统
- 前言python对动态验证码、滑动验证码的降噪和识别,在各种自动化操作中,我们经常要遇到沿跳过验证码的操作,而对于验证码的降噪和识别,的确困
- 当鼠标滑过一个图片时,图片会变成另外一张图片的效果是怎么制作出来的呢?相对一些不熟悉HTML代码的朋友来说,可以使用网页编辑软件自带的动作来