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))
相关文章
|
5天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
23 8
|
5天前
|
存储 C语言 Python
通过 Cython 带你认清 Python 变量的本质
通过 Cython 带你认清 Python 变量的本质
28 8
|
5天前
|
Python
python函数进阶
python函数进阶
|
5天前
|
安全 Python
Python量化炒股的获取数据函数—get_industry()
Python量化炒股的获取数据函数—get_industry()
13 3
|
5天前
|
Python
Python sorted() 函数和sort()函数对比分析
Python sorted() 函数和sort()函数对比分析
|
5天前
|
Python
Python量化炒股的获取数据函数—get_security_info()
Python量化炒股的获取数据函数—get_security_info()
12 1
|
5天前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
11 0
|
5天前
|
安全 数据库 数据格式
Python量化炒股的获取数据函数—get_fundamentals()
Python量化炒股的获取数据函数—get_fundamentals()
14 0
|
6天前
|
算法 Python
Python编程的函数—内置函数
Python编程的函数—内置函数
10 0
|
6天前
|
Java C++ Python
30天拿下Python之函数
30天拿下Python之函数
下一篇
无影云桌面