详解Python中的for循环


Posted in Python onApril 30, 2022

Python的 for 循环

Python 是基于集合的迭代。

for <var> in <iterable>: # <iterable>是对象的集合——例如,列表或元组。
    <statement(s)> # 循环体

a = ['曹操', '孫権', '劉備']
for i in a:
    print(i)

输出:

曹操
孫権
劉備

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

iter('曹操孫権')                             # String
<str_iterator object at 0x036E2750>

iter(['曹操', '孫権', '劉備'])                # List
<list_iterator object at 0x036E27D0>

iter(('曹操', '孫権', '劉備'))                # Tuple
<tuple_iterator object at 0x036E27F0>

iter({'曹操', '孫権', '劉備'})                # Set
<set_iterator object at 0x036DEA08>

iter({'曹操': 1, '孫権': 2, '劉備': 3})       # Dict
<dict_keyiterator object at 0x036DD990>

不可以迭代的对象

iter(1)                                   # Integer
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

iter(1.1)                                  # Float
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'float' object is not iterable

iter(len)                                  # Built-in function
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'builtin_function_or_method' object is not iterable

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

list_ = ['曹操', '孫権', '劉備']

itr = iter(list_ )
itr
<list_iterator object at 0x031EFD10>

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)
{'劉備', '曹操', '孫権'}

详解Python中的for循环

遍历字典

字典的遍历循环,循环变量被分配给字典的键。

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()函数,返回一个产生整数序列的迭代。

详解Python中的for循环

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循环的定义迭代方法的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python中使用gzip模块压缩文件的简单教程
Apr 08 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
Jul 15 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 Python
Python采集壁纸并实现炫轮播
Apr 30 #Python
Python循环之while无限迭代
如何Python使用re模块实现okenizer
Apr 30 #Python
如何使用python包中的sched事件调度器
Apr 30 #Python
详解OpenCV获取高动态范围(HDR)成像
详解OpenCV曝光融合
python使用shell脚本创建kafka连接器
Apr 29 #Python
You might like
一个图形显示IP的PHP程序代码
2007/10/19 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
用于table内容排序
2006/07/21 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
销售文员的岗位职责
2013/11/20 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
教师的实习鉴定
2013/12/15 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
成绩单家长评语大全
2014/04/16 职场文书
忠诚教育心得体会
2014/09/03 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android