python使用列表推导式生成5个数字8的列表_【菜鸟学Python】列表推导式

本文介绍了Python列表推导式的两种语法,包括无条件推导和条件推导。通过实例展示了如何使用推导式打印1到10的数字、1到10的偶数、1到100的奇数、1-100之间除7和7的倍数外的数字,以及1到999的水仙花数。
摘要由CSDN通过智能技术生成

列表推导式

推导式格式

[表达式 for 变量 in 列表]

[表达式 for 变量 in 列表 if 条件]

第一种语法:

首先迭代列表中所有内容,每一次迭代,都把列表中相应内容放到变量中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表

举例:

打印1到10之间的数字

常规操作:

#使用for打印

for i in range(1, 10):print(i)#输出如下:

for i in range(1, 11):print(i)1

2

3

4

5

6

7

8

9

10

列表推导式:

# 推导式格式[表达式 for 变量 in 列表]

In [8]: [i for i in range(1, 11)]

Out[8]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

第二种语法:

加入了判断语句,只有满足条件的内容才把列表中相应内容放到变量中,再在表达式中应用该变量的内容,最后用表达式的计算值生成一个列表。

举例:

打印1到10之间的偶数

常规打印的方法

In [9]: for i in range(1, 11):

...:if i % 2 ==0:

...:print(i)

...:2

4

6

8

10

使用列表推导式的方法

#条件推导式格式 [表达式 for 变量 in 列表 if条件]

In [10]: [i for i in range(1, 11) if i % 2 ==0]

Out[10]: [2, 4, 6, 8, 10]

练习题:

1、使用推导式打印1到100间奇数

#条件推导式格式 [表达式 for 变量 in 列表 if条件]

In [12]: number = [i for i in range(1, 101) if i % 2 !=0]

In [13]: print(number)

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

2、打印出1-100之间除了含7和7的倍数之外的所有数字

# 条件推导式格式 [表达式 for 变量 in 列表 if条件]

In [14]: number = [i for i in range(1, 99) if (i % 7) == 0 or (i % 10) == 7 or (i // 10) == 7]

In [15]: print(number)

[7, 14, 17, 21, 27, 28, 35, 37, 42, 47, 49, 56, 57, 63, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 84, 87, 91, 97, 98]

3、使用推导式打印1到999之间的水仙花数

# 条件推导式格式 [表达式 for 变量 in 列表 if条件]In [16]: number = [i for i in range(1, 1000) if ((i // 100) ** 3 + (i % 100 // 10) ** 3 + (i % 10) ** 3) ==i]

In [17]: print(number)

[1, 153, 370, 371, 407]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值