列表解析是Python迭代机制的一种应用,常用于实现创建新的列表。 列表解析式简化了代码,使代码的可读性增强;编译器在内部作了优化,不会因为简写而影响效率,反而提高了效率
基本语法:
- [expression for iter_val in iterable]
练习题:生成一个列表,元素是1-9,返回这个列表元素自增1后平方的列表
[(i+1)**2 for i in range(10)]
#对应的for循环实现:
list1 = []
list2 =list(range(10))
for i in list2:
list1.append((i+1)**2)
print(list1)
[i for i in range(k) if condition]:此时if起条件判断作用,满足条件的,将被返回成为最终生成的列表的一员。
[i if condition else exp for exp]:此时if...else被用来赋值,满足条件的i以及else被用来生成最终的列表。
print([i for i in range(10) if i%2 == 0])
#结果:[0, 2, 4, 6, 8]
print([i if i ==0 else 100 for i in range(10)])
#结果 : [0, 100, 100, 100, 100, 100, 100, 100, 100, 100]