[Python]List comprehension ONE-LINER
简单的引入
my_list = [] for i in range(1,11): my_list.append(i*i) print(my_list)
# 当涉及到创建新list,接着使用.append() method时,可以考虑使用list comprehension
# 上面的例子可以简化为:
my_list = [i*i for i in range(1,11)] print(my_list)
涉及到if statement时:(if statement在最后)
#输出[1,10]中的偶数 my_list = [i for i in range(1,11) if i%2 == 0] print(my_list)
涉及到if-else语句时:
#输出[1,10]中的偶数 my_list = [i if i%2 == 0 else "Python" for i in range(1,11)] print(my_list)
注意
i if i%2 == 0 else "Python"
与
a = 4; b = 12; print(b if b > a else a)
中
b if b > a else a
结构是一模一样的。
多维:
my_list = [(x,y) for x in range(1,11) for y in range(1,3)] print(my_list)