列表推导式是一种快速简洁创建列表的方法,能够结合循环和条件判断,避免语法冗长的代码。列表推导式一般可以写成:
[expression for item in iterable if condition]
>>>number_list = [2*number for number in [1,2,3,4,5]]
>>>number_list
[2,4,6,8,10]
以下代码求1到8之间的奇数列表
>>>number_list = [number for number in range(1,8) if number % 2 ==1]
>>>number_list
[1,3,5,7]
以下代码求1+1/2+……+1/20的和
>>>print(sum([1/i for i in range(1,21)]))
3.5977
在列表推导式中,expression本身也可以是一个条件表达式。以下代码产生列表[1,-1/2,1/3,-1/4…]
>>>[1/i if i%2 == 1 else -1/i for i in range(1,6)]
[1.0,-0.5,0.33333,-0.25,0.2]
此外,还可以同时使用列表推导式的if条件和条件表达式。以下代码生成列表[1,-1/3,1/5,-1/7…-1/47,1/49]
[1/i if i%4==1 else -1/i for i in range(1,50) if i%2==1]
以下代码生成列表[6,66,666,6666,…]
[int('6'*i) for i in range(1,5)]
474

被折叠的 条评论
为什么被折叠?



