gpt4 book ai didi

Python中利用all()来优化减少判断的实例分析

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python中利用all()来优化减少判断的实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

如果我有个list,想判断其中的元素是否满一个条件,后面的元素大于或等于前面元素。Python中的写法就比较多了。下面就主要介绍下一般的写法和通过all()来进行比较的写法.

nums=[1,2,3,3,5,6,6,7] 。

1、一般写法 。

?
1
2
3
4
5
6
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()的写法 。

?
1
2
3
4
5
6
7
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()的使用:

?
1
2
3
4
5
6
7
8
9
10
>>>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()的使用:

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> 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 )]

到此这篇关于Python中利用all()来优化减少判断的实例分析的文章就介绍到这了,更多相关Python中利用all()来优化减少判断的方法内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cjavapy.com/article/58/ 。

最后此篇关于Python中利用all()来优化减少判断的实例分析的文章就讲到这里了,如果你想了解更多关于Python中利用all()来优化减少判断的实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com