详解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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
SQLite3中文编码 Python的实现
Jan 11 Python
python将txt文件读取为字典的示例
Dec 22 Python
实例讲解Python3中abs()函数
Feb 19 Python
Django 缓存配置Redis使用详解
Jul 23 Python
Python hmac模块使用实例解析
Dec 24 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
python实现图片九宫格分割的示例
Apr 25 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
使用PHP模拟HTTP认证
2006/10/09 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
师范毕业生求职信
2014/07/11 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
试用期辞职信范文
2015/03/02 职场文书
使用pytorch实现线性回归
2021/04/11 Python
Python包argparse模块常用方法
2021/06/04 Python
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android