【总结】分析Python中的循环技巧

【总结】分析Python中的循环技巧

循环结构是在开发中应用比较广泛的一种结构,那么在Python中,有哪些循环的技巧呢

1、range函数

range函数表示一个不变的数字序列,经常与for循环结合使用。

举例:

for i in range(0,10) :
    print(i)

在这里插入图片描述

2、items方法

在循环遍历字典时,关键字和对应的值可以使用items方法同时得到。

举例:

dict = {'Google': 'www.google.com','taobao': 'www.taobao.com'}
for k,v in dict.items() :
    print(k + "的网址是:" + v)

在这里插入图片描述

3、enumerate函数

在循环遍历序列时,索引位置和对应值可以使用enumerate()函数同时得到。

举例:

list = ["I","Love","Python"]
for i,v in enumerate(list) :
    print(i, v)

在这里插入图片描述

4、zip函数

在同时循环遍历两个或多个序列时,使用zip()函数将这些序列打包。

举例:

info = ["姓名","年龄","性别"]
student = ["小明","21","男"]
for (i,s) in zip(info, student) :
    print("学生的{0}是{1}".format(i, s))

在这里插入图片描述

5、reversed函数

如果需要按照从后先前的顺序循环,可以使用reversed()函数。

举例:

for i in reversed(range(1, 10)) :
    print(i)

在这里插入图片描述

6、sorted函数

如果要按照排序后的顺序遍历序列,可以使用sorted()函数。

举例:

number = [5,1,6,9,4,2,0]
for i in sorted(number) :
    print(i)

在这里插入图片描述
再看看原来的number序列有没有改变呢?

number = [5,1,6,9,4,2,0]
for i in number :
    print(i)

在这里插入图片描述
原来的序列并未发生改变

所以,sorted()函数会生成一个新的已排序的序列,不会改动原来序列。

7、迭代器和iteration()函数

所有可迭代的对象都可以使用for循环来遍历

for循环使用了迭代器来访问容器中的元素,迭代器是个对象,它有一个next()方法,用于返回下一个元素。

当时用for循环访问容器中的下一个元素时,调用迭代器的next()方法就可以得到。

当容器内所有元素全部访问完后,迭代器会发出StopIteration异常,告诉使用者,迭代已经完成。for循环只要捕获这个异常,就知道迭代何时结束。

使用iter()函数可以得到容器的迭代器。

举例:

  • 一般的for循环:
number = [1,2,3,4]
for i in number :
    print(i)

在这里插入图片描述

  • 使用迭代器和iter()函数实现:
number = [1,2,3,4]
iter_number = iter(number)
while(True) :
    try:
        element = next(iter_number)
        print(element)
    except StopAsyncIteration :
        break

在这里插入图片描述
可见,利用迭代器和iter()函数一样可以实现for循环功能。

以上正是for循环的工作原理。

8、列表推导式

列表推导式是利用现有列表创建一个新的列表的方法。

列表推导式是非常有用的工具,用于动态的创建列表

[新元素表达式 for 临时变量 in 可迭代对象 if 条件表达式]

举例:

  • 简单的列表推导式
demo_list = [i*i for i in range(0,6)]
print(demo_list)

在这里插入图片描述

  • 加条件判断的列表推导式
demo_list = [i*i for i in range(0,6) if i%2==0]
print(demo_list)

在这里插入图片描述

  • 多个for循环的列表推导式
demo_list = [(x, y) for x in range(2) for y in range(3)]
print(demo_list)

在这里插入图片描述
本例中利用两个for 循环遍历两个列表生成了一个矩阵。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值