python 循环 学习笔记 1

小白开始学 python 边学边记录

今天第一天

for的使用

【表达式 for 循环计数器 in 可迭代对象】

for 表达式最终返回的是列表:

还可以在 for 后面添加if 条件,这样for 表达式就只能迭代符合条件的元素。

 

b_list = [x * x for x in a_range if x %2 = 0]
# a list 集合包含5 个元素
print(b list)

如果将for 表达式的方括号改为圆括号, for 表达式将不再生成列表,而是生成一个生成器
(generator ),该生成器同样可使用for 循环选代。
对于使用圆括号的for 表达式,它最终返回的是生成器,因此这种for 表达式也被称为生成器
推导式。例如如下代码。
#使用for 表达式创建生成器
c_generator = (x * x for x in a_range if x %2 == 0)
#使用for 循环,法代生成器
for 工in c generator:
print (i, end=’\ t ’)
print()

在前面看到的for 表达式都只有一个循环,实际上for 表达式可使用多个循环,就像嵌套循环
一样。例如如下代码。
d二list= [ (x, y) for x in range(5) for y in range(4)]
# d list 列表包含20 个元素
print(d_list)
上面代码中x 是遍历range(5 )的计数器,因此i亥x 可迭代5 次; y 是遍历range(4)的计数器,因
此该y 可法代4 次。因此,该(x,y)表达式一共会法代20 次。

上面的for 表达式相当于如下嵌套循环。
dd list = [ ]
for x in range(5) :
for y i in range(4):
dd list.append( (x, y))

使用zip ()函数可以把两个列表“压缩” 成一个zip 对象(可法代对象〉,这样就可以使用一个
循环并行遍历两个列表。为了测试zi p ()函数的功能,我们可以先在交互式解释器中“试验” 一下该函数的功能。
>> a = [ ’ a ’,’b ’, ’ c ’ ]
>> b = (1, 2 , 3]
>> [x for x in zip(a , b)]
[ (’ a ’, 1 ) ,( ’ b ’, 2) , ( ’ c ’, 3) ]
从上面的测试结果来看, zip ()函数压缩得到的可迭代对象所包含的元素是由原列表元素组成的元组。

 

有些时候, 程序需要进行反向遍历,此时可通过reverse d ()函数,该函数可接收各种序列(元组、列表、区间等)参数, 然后返回一个“反序排列”的法代器,该函数对参数本身不会产生任何影响。在交互式解释器中,测试该函数的过程如下。
> > a = range (10)
>> [x for x in reversed(a)]
[9 , 8 , 7 , 6, 5 , 4 , 3 , 2 , 1, 0]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值