for ... in ...语句前面有一个变量和函数,后面有一个if条件判断【python】
【摘要】 for ... in ...语句前面有一个变量和函数,后面有一个if条件判断【python】
这几天看代码经常会看到这样的python语法,如下:
result = [number for number in numbers if number > 5]
开始也没注意,认为只是一个for循环,好吧,其实就是一个for
循环🎈🎈🎈但是对不知道其语法的同学来说还是很难办的🎃🎃🎃这里对上述语法进行分析。
我们先来看这样的例子:
ls1 = ['1', '2', '3', '4'] #定义一个列表ls1
ls2 = [str(i) for i in ls1] #设置一个for循环,并让最后的结果等于ls2
print(ls2)
直接看==输出的结果==,看看和你想的是否一样,如下:
['1', '2', '3', '4']
这里给出解释:
ls2 = [str(i) for i in ls1]
等价于<===>
ls2 = []
for i in ls1:
ls2.append(str(i))
看了上面的公式,大家应该就一目了然了。这里给出更一般的公式,==即前面的str(i)可以为一个任意的函数或表达式==:
ls2 = [function(i) for i in ls1]
等价于<===>
ls2 = []
for i in ls1:
ls2.append(function(i))
例如,这里可以把str()
变成len()
:
ls1 = ['12', '231', '3', '4']
ls2 = [len(i) for i in ls1]
print(ls2)
==输出结果==:
[2, 3, 1, 1] #输出结果为列表中每个元素的长度
更一般的,在for
循环后还会有一个if语句:
ls1 = [1, 2, 3, 4]
ls2 = [i for i in ls1 if i > 2 ] #相比之前多了if i > 2
print(ls2)
==输出结果==:
[3, 4]
明白了上面的内容,这里仅加了个if
语句,应该是非常容易理解的了,即将输出结果大于2的存到ls2
中。这里也给出一般性结论,如下:
ls2 = [function(i) for i in ls1 if condition(i)] #相比之前多了个if条件语句
等价于<===>
ls2 = []
for i in ls1:
if condition(i) = True
ls2.append(function(i))
如若文章对你有所帮助,那就🛴🛴🛴
咻咻咻咻~~duang~~点个赞呗
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)