Python中利用all()来优化减少判断的实例分析
作者:cjavapy 发布时间:2023-02-04 03:53:22
标签:Python,all(),减少判断
如果我有个list,想判断其中的元素是否满一个条件,后面的元素大于或等于前面元素。Python中的写法就比较多了。下面就主要介绍下一般的写法和通过all()来进行比较的写法。
nums=[1,2,3,3,5,6,6,7]
1、一般写法
def checker(nums):
for x in range(len(nums)):
if x+1 < len(nums):
if nums[x] > nums[x+1]:
return False
return True
2、使用all()和zip()的写法
def checker(nums):
return all(i <= j for i, j in zip(nums, nums[1:]))
#如果不想为zip的第二个参数创建个list,可以这样写
from itertools import islice
def checker(nums):
return all(i <= j for i, j in zip(nums, islice(nums, 1, None)))
解释说明:
all():函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
zip():是函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
1)python2中zip()的使用:
>>>a = [1,2,3] #此处可迭代对象为列表
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 与 zip 相反,可理解为解压
[(1, 2, 3), (4, 5, 6)]
2)python3中zip()的使用:
>>> a = [1,2,3] #此处可迭代对象为列表
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)
>>> zipped #返回的是一个对象
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)] #使用list()函数转换为列表
>>> list(zip(a,c))
[(1, 4), (2, 5), (3, 6)]
>>> zipped = zip(a,b)
>>> list(zip(*zipped)) #解压也使用list进行转换
[(1, 2, 3), (4, 5, 6)]
来源:https://www.cjavapy.com/article/58/


猜你喜欢
- SQL Server 阻止了对组件 'Ad Hoc Distributed&nbs
- pyecharts介绍pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。
- 简介有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的
- Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件.FTP的工作流程及基
- 1.match() 从开始位置开始匹配 2.search() 任意位置匹配,如果有多个匹配,只返回第一个 3.finditer() 返回所有
- 之前有教大家制作日历,很多小伙伴都兴奋的告诉小编自己成功了。那么我们在日历中怎么去找到我们想要的那个时间点呢?其实有点类似于查询的功能,但是
- 如题在SQL中 SELECT ... FROM ... ORDER BY abc ASC; 如果abc是字符串,那么结果会按照a-z 中文按
- python实现的五子棋,能够自动判断输赢,没有是实现电脑对战功能源码下载:pygame五子棋# 1、引入pygame 和 pygame.l
- function flushDataTree() { dataset_mainMenuTemp.setShowLoadingTip(true
- Jones向量假设光波沿z轴传播,那么其三个方向的电场分量可以表示为Jones矩阵能够保证二维列向量形状不变的运算有无穷多种,但最符合我们直
- 测试语法如下:powered by jb51.netexec GetRecordFromPage news,newsid,10,100000
- 1、问题:群中有同学贴了如下一段代码,问为何 list 最后打印的是空值? from multiprocessing
- 一、创建堆heapq有两种方式创建堆, 一种是使用一个空列表,然后使用heapq.heappush()函数把值加入堆中,另外一种就是使用he
- MySQL 拥有一个复杂的但直观易学的 SQL 接口。这个章节描述了各种不同的命令、类型和函数,为了高效地使用 MySQL 需要了解它们。这
- 先说迭代器,对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用it
- 前言先前我们给出了遗传算法的解决方案,那么同样的我们,给出使用PSO的解决方案。其实对PSO算法比较了解的小伙伴应该是知道的,这个PSO其实
- 一,最常见MYSQL最基本的分页方式:select * from content order by id desc limit 0, 10在
- ASP.NET利用它可以实现在线备份、还原数据库等各种功能。由于客户的数据库和WEB服务不再同一台服务器,把网站部署在服务器上以后,运行程序
- 在后端有许多的封装方法来截取字符串或者对字符串的操作,同样前端也有相应的方法。有一个data数据为ipaddrdata() {
- 在简略的说之前,首先要对RW锁的结构有一个大致的了解type RWMutex struct { w