python:列表推导式(for表达式)

python:列表推导式(for表达式)

1.含义:

​ 列表推导式(又称列表解析式)提供了一种简单明了的方法来创建列表。

2.作用:

​ 轻量级循环创建列表(快速的创建一个有规律的列表),也就是说列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。

3.格式:

# list_name = [表达式 for 临时变量 in 可迭代对象 if条件表达式]
# 注意:表达式中,if条件表达式可有可无,根据需求

4.结构解析:

​ 它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。最左边的表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

5.执行顺序

各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。

例如:

​ **需求:**拿到1-100之间的所有偶数

# 列表推导式:
my_list = [i for i in range(1, 101) if i % 2 == 0]
print(my_list)

# 使用循环和if
for x in range(1,101): # 1
	if x % 2 == 0:    # 2
        print(i)	# 3
        
	# look:列表推导式最左边的表达式是要存储的对象,就是最里层的,第二个for循环是最外层的,if判断是中间那一层的,这样看来就非常简单了

6.案例

**需求:**将1-100之间的数字三个三个生成一个元组,并且装在一个新的列表中

# 列表推导式
# 【1】第一个列表存放1-100之间的数
my_list = [i for i in range(1, 101)]

# 【2】第二个列表来每次创建一个元组,并将元组放到列表中
# 【3】每次i循环的都是0,3,6,9,12……对应上边列表中每三个元素开始的第一个元素的索引
# 【4】当你要从索引为0开始切,长度就是3,切到的是索引为2的地方,当第二次切就要从索引为3的地方开始切,长度每次都增加3,因为你每次都要切3个元素
new_list = [tuple(my_list[i:i + 3]) for i in range(0, len(my_list), 3)]
print(new_list)

输出结果:

[(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12), (13, 14, 15), (16, 17, 18), (19, 20, 21), (22, 23, 24), (25, 26, 27), (28, 29, 30), (31, 32, 33), (34, 35, 36), (37, 38, 39), (40, 41, 42), (43, 44, 45), (46, 47, 48), (49, 50, 51), (52, 53, 54), (55, 56, 57), (58, 59, 60), (61, 62, 63), (64, 65, 66), (67, 68, 69), (70, 71, 72), (73, 74, 75), (76, 77, 78), (79, 80, 81), (82, 83, 84), (85, 86, 87), (88, 89, 90), (91, 92, 93), (94, 95, 96), (97, 98, 99), (100,)]

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值