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


猜你喜欢
- 除了IE浏览器,其他所有主流的浏览器均支持原生的 Base64 编码:btoa(text) – base64 encodes text. a
- 深度学习中,模型训练一般都需要很长的时间,由于很多原因,导致模型中断训练,下面介绍继续断点训练的方法。方法一:载入模型时,不必指定迭代次数,
- 本文实例讲述了Python3通过Luhn算法快速验证信用卡卡号的方法。分享给大家供大家参考。具体分析如下:Python3通过Luhn算法快速
- 1.DQL类型的SQL语句基本概述DQL类型的SQL语言全称为Data Query Language,中文名称为数据查询语言,主要是用来查询
- 上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知:不能用$(document).ready()方法,而是要用$(&quo
- 🔓一. CRUDCRUD : Create,Retrieve,Update,Delete新增数据查询数据修改数据删除数据MySQL的工作就是
- 代码如下:var obj = document.getElementById("name"
- pyecharts产生背景Echarts是由百度开源的数据可视化,凭借良好的交互性和精巧的图表设计,得到众多开发者的认可,而python很适
- 配置篇打开设置界面许多设置都需要在设置界面进行,所以想要配置第一步就应该是打开设置界面。1> 鼠标操作打开。File --> P
- 有关itchat接口的知识,小编是初步学习,这里先给大家分享一段代码用法示例。sudo pip3 install itchat今天用了下it
- Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Dictionary
- 什么是TCP/IP、UDP? TCP/IP(
- 一、异常错误 a、语法错误错误一:if错误二:def text: &n
- 一、目的之前在博文SQL Server数据库最小宕机迁移方案中提到了使用了完全备份+差异备份的功能完成了数据库的转移,但是这个方法在遇到了7
- vue router路由嵌套不显示问题的解决方法,具体内容如下路由嵌套,vue2.0 router中嵌套路由不成功,如何解决?我先说下我的需
- 前言对于很多接触Python的人而言,字符的处理和语言整体的温顺可靠相比显得格外桀骜不驯难以驾驭。文章针对Python 2.7,主要因为3对
- 1:下载MySql 官网下载地址:https://dev.mysql.com/downloads/mysql/ 选择对应
- 写在前面最近有几个有趣的小想法想实践一下,希望使用低功耗、低成本的硬件跑一些持续性的独立的服务。最初的想法是入手一个树莓派得了,开发板尺寸小
- 有时候我们会需要从网络上爬取一些图片,来满足我们形形色色直至不可描述的需求。一个典型的简单爬虫项目步骤包括两步:获取网页地址和提取保存数据。
- bs4解析原理:1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中2.通过调用BeautifulSoup对象中相