用习惯列表解析之后会觉得超级酷,所以在尝试使用列表解析,把循环什么的写在一行里面。使用 if 的时候什么时候必须要有 else,什么时候可以没有 else 一直没搞明白,直到今天!待我缓缓道来:
列表解析总共有两种形式:
1. [i for i in range(k) if condition]:此时 if 起条件判断作用,满足条件的,将被返回成为最终生成的列表的一员。
2. [i if condition else exp for exp]:此时 if…else 被用来赋值,满足条件的 i 以及 else 被用来生成最终的列表。
以上情况对多个 for 仍然成立。
print([i for i in range(10) if i%2 == 0])print([i if i == 0 else 100 for i in range(10)])[0, 2, 4, 6, 8][0, 100, 100, 100, 100, 100, 100, 100, 100, 100]