赞
踩
列表推导式是从一个或者多个列表快速简洁地创建列表的一种方法,又被称为列表解析。它可以将循环和条件判断结合,从而避免语法冗长的代码同时提高程序性能。会使用推导式,说明已经达到Python初学者的水平了。使用列表推导式更符合Python的编程风格。
- 通过列表推导创建一个整数列表
- number_list = [number for number in [1,2,3,4,5]]
- print(number_list)
-
- 在第一行中,第一个number变量为列表生成值,也就是说,把循环结果放在列表number_list中。第二个number为循环变量。其中第一个number位置可以为表达式。如下:
- number_list = [2*number for number in [1,2,3,4,5]]
- print(number_list)
-
- 列表推导把循环放在括号内。这种例子和以前的大不一样,确实更为常见的方式。同样,列表推导式也可以加上if条件:
- number_list = [number for number in range(1,8) if number % 2 == 1]
- print(number_list)
下面给些例子
- 1.求1+1/2+...+1/20之和。
- print(sum([1/i for i in range(1,21)]))
- 程序输出:
- 3.597739657143682
-
-
- 2.求1-1/2+1/3-1/4+...之前n项和(n>=10)
- 如何产生这样的列表?
- [1,-1/2,1/3,-1/4,...]
- 下面列表推导式产生列表:[1,-1/2,1/3,-1/4,1/5]
- >>>[1/i if i%2==1 else -1/i for i in range(1,6)]
- [1.0,-0.5,0.33333333333333,-0.25,0.2]
- “1/i if 1%2==1 else -1/i”是条件表达式,表示奇数项为正,偶数项为负。
- 程序代码:
- n = int(input())
- print(sum([1/i if i%2==1 else -1/i for i in range(1,n+1)]))
- 程序输入:
- 100
- 程序输出:
- 0.688172179310195
-
-
- 3.求1-1/3+1/5-1/7+...-1/47+1/49。
- 列表推导式的if条件和条件表达式可以同时使用。
- 程序代码:
- print(sum([1/i if i%4==1 else -1/i for i in range(1,50) if i%2==1 ]))
- 程序输出:
- 0.7953941713587581
-
-
- 4. 6是一个幸运数字,求6+66+666+...+6666...666(n个6,5<=n<=10)的和
- 程序代码:
- n = int(input())
- print(sum([int('6'*i) for i in range(1,n+1)]))
- 程序输入:
- 7
- 程序输出:
- 7407402
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。