python迭代器和for循环区别,for循环是迭代器吗
for循环用于迭代序列(即列表、元组、字典、集合或字符串)。编写for语句,例如从对象开始按顺序给变量赋值,并根据元素的数量重复这个过程。对象可以是列表(数组)、元组、字符串等。本文将详细讲解Python中for定义的迭代方法,你可以知道自己需要什么。
目录
Python的for-loop遍历字典range()函数break语句和continue语句else语句
Python的 for 循环
Python是基于集合的迭代。
对于变量,iterable: # iterable是对象——的集合,例如,列表或元组。
语句#循环体
A=[曹操,孙尊,刘备]
对于a:中的I
打印(一)
输出:
曹操
太阳宏基
刘备
可迭代对象可以传递给内置的Python函数iter()进行处理,并作为迭代器返回。
Iter(曹尊)# String
0x036E2750处的str_iterator对象
Iter([曹操,孙尊,刘备]) # List
0x036E27D0处的list_iterator对象
Iter((曹操,孙尊,刘备)# Tuple
0x036E27F0处的tuple_iterator对象
Iter({ 曹操,孙尊,刘备 }) # Set
0x036DEA08处的set_iterator对象
Iter({ 曹操 : 1,孙尊 3360 2,刘备 : 3}) # Dict
0x036DD990处的dict_keyiterator对象
无法迭代的对象
iter(1) #整数
回溯(最近呼叫):
模块中文件 stdin 的第1行
type error :“int”对象不可迭代
iter(1.1) # Float
回溯(最近呼叫):
模块中文件 stdin 的第1行
type error :“float”对象不可迭代
iter(len) #内置函数
回溯(最近呼叫):
模块中文件 stdin 的第1行
type error :“builtin _ function _ or _ method”对象不可迭代
迭代器是一个值生成器,它从相关的可迭代对象中生成连续的值。内置函数next()用于从迭代器中获取下一个值。
List_=[曹操,孙尊,刘备]
itr=iter(list_)
伊曲康唑
0x031EFD10处的list_iterator对象
下一步(itr)
曹操
下一步(itr)
孙尊
下一步(itr)
“刘备”
使用内置的list()、tuple()和set()函数一次性从迭代器中获取所有值。
List_=[曹操,孙尊,刘备]
itr=iter(list_)
列表(itr)
[曹操,孙尊,刘备]
itr=iter(list_)
元组(itr)
(曹操,孙尊,
劉備)
itr = iter(list_)
set(itr)
{劉備, 曹操, 孫権}
遍历字典
字典的遍历循环,循环变量被分配给字典的键。
d = {曹操: 1, 孫権: 2, 劉備: 3}for k in d:
print(k)
输出:
曹操
孫権
劉備
访问字典值的操作
for k in d:print(d[k])
#输出:
#1
#2
#3
for v in d.values():
print(v)
#输出:
#1
#2
#3
同时遍历字典的键和值。循环变量 for 不限于单个变量,可以是元组。
i, j = (1, 2)print(i, j)
1 2
for i, j in [(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}
for k, v in d.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)x
range(0, 5)
type(x)
<class range>
range对象是可迭代的,所以可以通过for循环遍历它们来获取值。
for n in x: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]
# 默认为1
list(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 完全终止循环。
for i in [曹操, 孫権, 劉備]:if 孫 in i:
break
print(i)
输出:
曹操
continue 终止当前迭代并进行下一次迭代。
for i in [曹操, 孫権, 劉備]:if 孫 in i:
continue
print(i)
输出:
曹操
劉備
else语句
for 循环的子句 else,类似于 while 循环的使用。
for i in [曹操, 孫権, 劉備]:print(i)
else:
print(结束。)
输出:
曹操
孫権
劉備
结束。
else 如果列表被一条语句 break,则不会执行。
for i in [曹操, 孫権, 劉備]:if i == 孫権:
break
print(i)
else:
print(结束。)
输出:
曹操
到此这篇关于详解Python中for循环的定义迭代方法的文章就介绍到这了,更多相关Python for循环内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。