千家信息网

Python中for循环怎么定义迭代

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本文小编为大家详细介绍"Python中for循环怎么定义迭代",内容详细,步骤清晰,细节处理妥当,希望这篇"Python中for循环怎么定义迭代"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月18日Python中for循环怎么定义迭代

本文小编为大家详细介绍"Python中for循环怎么定义迭代",内容详细,步骤清晰,细节处理妥当,希望这篇"Python中for循环怎么定义迭代"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Python的 for 循环

Python 是基于集合的迭代。

for  in : # 是对象的集合--例如,列表或元组。     # 循环体a = ['曹操', '孫権', '劉備']for i in a:    print(i)

输出:

曹操
孫権
劉備

可迭代对象 ,可以被传递给内置的 Python 函数 iter() 处理,返回做迭代器

iter('曹操孫権')                             # Stringiter(['曹操', '孫権', '劉備'])                # Listiter(('曹操', '孫権', '劉備'))                # Tupleiter({'曹操', '孫権', '劉備'})                # Setiter({'曹操': 1, '孫権': 2, '劉備': 3})       # Dict

不可以迭代的对象

iter(1)                                   # IntegerTraceback (most recent call last):  File "", line 1, in TypeError: 'int' object is not iterableiter(1.1)                                  # FloatTraceback (most recent call last):  File "", line 1, in TypeError: 'float' object is not iterableiter(len)                                  # Built-in functionTraceback (most recent call last):  File "", line 1, in TypeError: 'builtin_function_or_method' object is not iterable

迭代器,是一个值生产者,从其关联的可迭代对象中产生连续的值。内置函数 next() 用于从迭代器中获取下一个值。

list_ = ['曹操', '孫権', '劉備']itr = iter(list_ )itrnext(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}for k in d:    print(k)

输出:

曹操
孫権
劉備

访问字典值的操作

for k in d:    print(d[k])#输出:#1#2#3for v in d.values():    print(v)#输出:#1#2#3

同时遍历字典的键和值。循环变量 for 不限于单个变量,可以是元组。

i, j = (1, 2)print(i, j)1 2for 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()返回一个产生以0开头的整数的迭代,直到但不包括数值

x = range(5)xrange(0, 5)type(x)

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(, , )返回一个迭代结果。

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 完全终止循环。

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循环怎么定义迭代"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0