for表达式用于利用其他区间、元组、列表等可迭代对象创建新的列表。for 表达式的语法格式如下:
[表达式 for 循环计数器 in 可迭代对象]
从上面的语法格式可以看出,for表达式与普通for循环的区别
1)在for关键字之前定义一个表达式,该表达式通常会包含循环计数器
2)for 表达式没有循环体,因此不需要冒号。
for表达式当然也是有循环的,它同样会对可迭代对象进行循环一一可迭代对象包含几个对象,该循环就对 for之前的“表达式”执行几次(相当于for之前的表达式就是循环体),并将每次执行的值收集起来作为新的列表元素。
for表达式最终返回的是列表,因此for表达式也被称为列表推导式
# !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : Laopirangedemo = range(10)#对rangedemo执行for表达式listdemo = [x * x for x in rangedemo]print(listdemo)
上面的第7行代码将会对arange执行迭代,由于rangedemo相当于包含10个元素,因此程序生成的listdemo司样包含10个元素,每个元素都是arange中每个元素的平方(由表达式x*x控制)。
代码运行结果如下:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
还可以在for表达式后面添加f条件,这样for 表达式将只选代那些符合条件的元素。例如如下代码。
listdemo = [x * x for x in rang