Python强大的语法生成列表

python特有的列表生成式实在是太强大了,在所学编程语言中,第一次见这么简洁的语法。
如果要生成[1x1, 2x2, 3x3, …, 10x10],可以使用如下:

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

作业:

请利用列表生成式生成列表 [1x2, 3x4, 5x6, 7x8, …, 99x100]

提示:range(1, 100, 2) 可以生成list [1, 3, 5, 7, 9,…]

答案

print [x*(x+1) for x in range(1,100,2)]

条件过滤
列表生成式的 for 循环后面还可以加上 if 判断

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

多层表达式(这个比较强大)

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

附录:isinstance(x,str)可以判断变量x是否是字符串
字符串upper()方法可以返回大写的字母

猜你喜欢

转载自blog.csdn.net/huangbaokang/article/details/81391451
今日推荐