列表推导式用于生成一个列表:
使用普通方法生成列表:
capitalized_cities = [] for city in cities: capitalized_cities.append(city.title())
使用列表推导式生成列表:
capitalized_cities = [city.title() for city in cities]
列表推导式里有一个 for 循环, for 循环的前面部分是对元素的操作,对循环中的每个元素调用 .title() 方法.
列表推导式还可以添加 if 判断:
可以在 for 循环的最后添加条件,符合条件的元素再调用 for 循环前面的部分.
squares = [x**2 for x in range(9) if x % 2 == 0]
上述代码将 squares 设为等于列表 [0, 4, 16, 36, 64] ,因为仅在 x 为偶数时才评估 x 的 2 次幂。
但如果你想添加 else , 则需要把条件判断语句放在 for 循环前面:
squares = [x**2 if x % 2 == 0 else x + 3 for x in range(9)]
[0, 4, 4, 6, 16, 8, 36, 10, 64]
如果 x % 2 == 0 则执行 x**2 , 不然则执行 x+3