列表生成式
-
案例1: 1到9构成的列表
# 方法一: list01 = [] for i in range(1, 10): list01.append(i) print(list01) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 方法2: 列表生成式 res = [x for x in range(1, 10)] print(res) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 总结:使用列表生成式得到的结果放在列表中
-
案例2:将"holle world"中的空格和元音字母去掉
res = [x for x in range(1, 10)] # 方法1: for x in "holle world": if x not in "aeiou" and x != " ": list02.append(x) print("".join(list02)) # hllwrld # 方法2: 列表生成式 list02 =[x for x in "holle world" if x not in "aeiou "] print(list02) # ['h', 'l', 'l', 'w', 'r', 'l', 'd'] # 总结:使用列表生成式可以添加条件进行筛选
-
案例3: 创建一个笛卡尔乘积 A×B = {(x,y)|x∈A∧y∈B}
# 方法一: res = [] for x in "abc": for y in "123": res.append(x + y) print(res) # ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3'] # 方法2: 列表生成式 res = [x + y for x in "abc" for y in "123"] print(res) # ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3'] # # 总结:使用列表生成式可以循环嵌套
-
案例4:将字典中的元素放到列表中
dict01 = {"name":"zhangsan","age":18,"sex":"男"} res = [(key,value) for key,value in dict01.items()] print(res) # [('name', 'zhangsan'), ('age', 18), ('sex', '男')]
总结:
- 使用列表生成式得到的一定是一个列表
- 列表生成式的结果放在最前面 可以是 元组、字典、字符串、数字型等数据类型
- 列表生成式中可以添加条件判断语句 进行筛选
- 列表生成式可以进行循环嵌套