版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
【总结】分析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 循环遍历两个列表生成了一个矩阵。