python列表推导式

列表推导式用于生成一个列表:

使用普通方法生成列表:

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 

 

posted @ 2018-06-03 01:45  诗&远方  阅读(182)  评论(0编辑  收藏  举报