python 疯狂讲义(流程控制)

for-in 循环

for-in 循环中的变量的值受 for-in 循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值 。
for-in 循环可用于遍历任何可选代对象 。 所谓可迭代对象,就是指该对象中包含 一个_iter_方法,且该方法的返回值对象具有 next()方法

is instance() 函数,该函数用于判断某个变量是否为指定类型 的 实例 ,其 中 前一 个参数是要判断的 变量 ,后 一 个 参数是类型。

使用 for-in 循环遍历列表和元组:(2种)

for-in 循环也可根据索引来遍历列表或元组:只要让循环计数器遍历 0 到列表长度的区间,即可通过该循环计数器来访问列表元素 。使用

for-in 循环遍历字典

使用 for-in 循环遍历字典其实也是通过遍历普通列表来实现的,字典包含了如下 三个方法。
items(): 返回字典中所有 key-value 对的列表。
keys(): 返回字典中所有 key 的列表 。
values ():返回字典中所有 value 的列表 。

>>> my_dict = {'yuwen':89,'shuxue':92,'yingyu':80}

>>> my_dict.items()
dict_items([('yuwen', 89), ('shuxue', 92), ('yingyu', 80)])
>>> type(my_dict.items())
<class 'dict_items'>
>>> for key, value in my_dict.items():
...     print('key',key)
...     print('value',value)
... 
key yuwen
value 89
key shuxue
value 92
key yingyu
value 80

for 表达式:

for 表达式用于利用其他区间、元组、列表 等可迭代对象创建新的列表 。 for 表达式 的语法格式如下:
[表达式 for 循环计数器且可迭代对象]

for 表达式与普通 for 循环的区别有两点
在 for 关键字之前定义 一 个 表达式,该表达式通常会包含循环计数器 。
 for 表达式没有循环体,因此不需要冒号 。

for 表达式最终返回的是列表,因此 for 表达式也被称为列表推导式 。

>>> a_range = range(10)
>>> a_range
range(0, 10)
>>> a_list = [x for x in a_range]
>>> a_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for 表达式后面添加 if 条件,这样 for 表达式将只迭代那些符合条件的元素

>>> b_list = [x for x in a_range if x%2==0]
>>> b_list
[0, 2, 4, 6, 8]

如果将 for 表达式的方括号改为圆括号, for 表达式将不再生成列表,而是生成 一 个生成器(generator ),该生成器同样可使用 for 循环选代。

>>> c_generator = (x for x in a_range if x%2==0)
>>> for i in c_generator:
...     print(i,end='|')
... 
0|2|4|6|8|>>> 

for 表达式可使用多个循环,就像嵌套循环一样:

>>> d_list = [(x,y) for x in range(5) for y in range(5)]
>>> d_list
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]
>>> 

 

常用工具函数:

zip ()函数可以把两个 列 表“压缩” 成一 个 zip 对象(可迭代对象),这样就可以使用 一 个循环并行遍历两个列表 。zip ()函数压缩得到的可迭代对象所包含的元素是由原列表元素组成的元组。

>>> a = ['a','b','c']
>>> b = [1,2,3]
>>> [x for x in zip(a,b)]
[('a', 1), ('b', 2), ('c', 3)]
>>> 

如果 z ip ()函数压缩的两个列表长度不相等 , 那么 zip ()函数将以长度更短的列表为准 。zip ()函数不仅可以压缩两个列表 , 也可以压缩多个列表 。使用 zip()函数压缩 N 个列表,那么 zip ()函数返回的可选代对象的元素就是长度为 N 的元组。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值