Python中for循环怎么定义迭代
导读:本文共3022.5字符,通常情况下阅读需要10分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Python的 for 循环Python 是基于集合的迭代。for<var>in<iterable>:#<iterable>是对象的集合——例如,列表或元组。<statement(s)>#循环体a=['曹操','孫権','劉備']foriina:print(... ...
目录
(为您整理了一些要点),点击可以直达。Python的 for 循环
Python 是基于集合的迭代。
for<var>in<iterable>:#<iterable>是对象的集合——例如,列表或元组。<statement(s)>#循环体a=['曹操','孫権','劉備']foriina:print(i)
输出:
曹操
孫権
劉備
可迭代对象 ,可以被传递给内置的 Python 函数 iter() 处理,返回做迭代器
iter('曹操孫権')#String<str_iteratorobjectat0x036E2750>iter(['曹操','孫権','劉備'])#List<list_iteratorobjectat0x036E27D0>iter(('曹操','孫権','劉備'))#Tuple<tuple_iteratorobjectat0x036E27F0>iter({'曹操','孫権','劉備'})#Set<set_iteratorobjectat0x036DEA08>iter({'曹操':1,'孫権':2,'劉備':3})#Dict<dict_keyiteratorobjectat0x036DD990>
不可以迭代的对象
iter(1)#IntegerTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'int'objectisnotiterableiter(1.1)#FloatTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'float'objectisnotiterableiter(len)#Built-infunctionTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'builtin_function_or_method'objectisnotiterable
迭代器,是一个值生产者,从其关联的可迭代对象中产生连续的值。内置函数 next() 用于从迭代器中获取下一个值。
list_=['曹操','孫権','劉備']itr=iter(list_)itr<list_iteratorobjectat0x031EFD10>next(itr)'曹操'next(itr)'孫権'next(itr)'劉備'
使用内置 list()、tuple() 和 set() 函数一次从迭代器中获取所有值。
list_=['曹操','孫権','劉備']itr=iter(list_)list(itr)['曹操','孫権','劉備']itr=iter(list_)tuple(itr)('曹操','孫権','劉備')itr=iter(list_)set(itr){'劉備','曹操','孫権'}
遍历字典
字典的遍历循环,循环变量被分配给字典的键。
d={'曹操':1,'孫権':2,'劉備':3}forkind:print(k)
输出:
曹操
孫権
劉備
访问字典值的操作
forkind:print(d[k])#输出:#1#2#3forvind.values():print(v)#输出:#1#2#3
同时遍历字典的键和值。循环变量 for 不限于单个变量,可以是元组。
i,j=(1,2)print(i,j)12fori,jin[(1,2),(3,4),(5,6)]:print(i,j)
输出:
1 2
3 4
5 6
字典方法 items() 有效地将键/值对列表作为元组返回。
d={'曹操':1,'孫権':2,'劉備':3}d.items()dict_items([('曹操',1),('孫権',2),('劉備',3)])d={'曹操':1,'孫権':2,'劉備':3}fork,vind.items():print('k=',k,',v=',v)
输出:
k = 曹操 , v = 1
k = 孫権 , v = 2
k = 劉備 , v = 3
range()功能
Python 提供了内置range()函数,返回一个产生整数序列的迭代。
range(<end>)返回一个产生以0开头的整数的迭代,直到<end>但不包括<end>数值
x=range(5)xrange(0,5)type(x)<class'range'>
range对象是可迭代的,所以可以通过for循环遍历它们来获取值。
forninx:print(n)
输出:
0
1
2
3
4
list() 、tuple() 一次获取所有的循环遍历的值。
list(x)[0,1,2,3,4]tuple(x)(0,1,2,3,4)
range(<start>, <end>, <step>)返回一个迭代结果。
list(range(5,20,3))[5,8,11,14,17]#默认为1list(range(5,10,1))[5,6,7,8,9]list(range(5,10))[5,6,7,8,9]#数值范围必须是可以正向迭代list(range(-5,5))[-5,-4,-3,-2,-1,0,1,2,3,4]list(range(5,-5))[]list(range(5,-5,-1))[5,4,3,2,1,0,-1,-2,-3,-4]
break语句 和continue语句
break 完全终止循环。
foriin['曹操','孫権','劉備']:if'孫'ini:breakprint(i)
输出:
曹操
continue 终止当前迭代并进行下一次迭代。
foriin['曹操','孫権','劉備']:if'孫'ini:continueprint(i)
输出:
曹操
劉備
else语句
for 循环的子句 else,类似于 while 循环的使用。
foriin['曹操','孫権','劉備']:print(i)else:print('结束。')
输出:
曹操
孫権
劉備
结束。
else 如果列表被一条语句 break,则不会执行。
foriin['曹操','孫権','劉備']:ifi=='孫権':breakprint(i)else:print('结束。')
输出:
曹操
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Python中for循环怎么定义迭代的详细内容,希望对您有所帮助,信息来源于网络。