目录
练习5:现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求出1/4/7 和 1/5/9 元素,思考如何取出
什么是列表推导式
概念:是创建新列表的一种方式,主要依赖for 循环
主要格式:变量名=【表达式for变量in列表】或者在列表后面加上if条件 (注意 不要加冒号)
执行流程:根据表达式就行运算,或者遍历列表中的内容给变量进行判断,符合的值,在进行表达式判断
注:想保存的内容放在前面
相关实例解析:
练习1:将lst中每一个元素进行平方后放入到一个新列表中
lst = [1, 2, 3, 4, 5, 6, 7, 8]
思路:1.想要根据格式写出新列表 ”new_list “
2.找到表达式 i*i
3.写出代码
new_list = [i * i for i in lst]
print(new_list)
这样就完成了
练习2.求出lst 中是奇数的值,然后放入到一个新列表中
求奇数的值
奇数无非就是不能被二整除的数(i%2==1) 所以要用的 if语句
lst = [1, 2, 3, 4, 5, 6, 7, 8]
lst1 = [i for i in lst if i % 2 == 1]
print(lst1) # [1, 3, 5, 7]
————————————————————————————————————————————————————
练习3.求列表中所有大于2的偶数进行平方计算
注意:有两个条件语句,大于2 和 偶数(if i%2==0 and i>2 或者这样写 if i%2==0 if i>2)
lst = [1, 2, 3, 4, 5, 6, 7, 8]
new_lst = [i ** 2 for i in lst if i % 2 == 0 if i > 2]
print(new_lst) # [16, 36, 64]
练习4.将一个嵌套列表转换成一个一维列表。
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 转换成 lst2=[1,2,3,4,5,6,7,8,9]
new_lista = [i for lst1 in lst for i in lst1] # 在for lst1 in lst 中进行二次循环 i
print(new_lista)
练习5:现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求出1/4/7 和 1/5/9 元素,思考如何取出
要根据索引取值(range(len(lst))):分别为【0】【1】【2】
首先取 1,4,7 这个规律很简单,都在索引的第一位 也就是下标【0】
得出 new_sss = [lst[i][0] for i in range(len(lst))]
再看 1,5,9 它们的规律就是【0】【0】,【1】【1】,【2】【2】可以直接用两个 i 表示
得出 new_xxx = [lst[i][i] for i in range(len(lst))]
实现代码就是:
new_sss = [lst[i][0] for i in range(len(lst))]
new_xxx = [lst[i][i] for i in range(len(lst))]
print(new_sss ,'和', new_xxx)