Python3迭代 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python3迭代

2024/9/6 韩俊  Python教程 689 0

对于所有的集合,无论是有序集合(str,tuple,list)还是无序集合(set,dict), 我们都可以通过 for 循环来遍历该集合,这种遍历我们称为迭代(Iteration)。

对于所有集合的迭代,带入的都是集合中的成员(dict 带入的是键),在 Python 中,迭代是通过 for...in 来完成的。

集合迭代

我们知道 for...in 遍历有序集合的时, 带入的是集合中的单个成员,这里的单个成员变量可以是任何类型的,比如成员本身也可以是个集合。

mylist = [1, "hello", [1, 2], (1,), {"a": 1}]

for item in mylist:
    print(item)

用 for...in 遍历无序集合 set 时,带入的是 set 中的单个成员, 但要注意 set 的内存结构和 dict 一样都是按 hash 表存储的,和我们创建时候给的顺序不一定一致。

myset = set(["a", "b", (1, 2)])

for item in myset:
    print(item)

用 for...in 遍历无序集合 dict 时,带入的并不是 dict 的单个成员变量,而是 dict 单个成员变量的 key。

mydict = {"a": 1, "b": 2, "c": 3}

for item in mydict:
    print(item)

用 for...in 直接遍历 dict 的 keys 函数,values 函数和 items 函数。

students_dict = {"name": "ruhua", "age": 18}

for student in students_dict.keys():
    print(student)   # 带入的是键

for student in students_dict.values():
    print(student)   # 带入的是值

for student in students_dict.items():
    print(student)   # 带入的是成员

Iterable 和 enumerate

如何判断一个对象是可迭代对象呢?方法是通过 collections 模块的 Iterable 类型判断。

from collections.abc import Iterable

myint = 2
myfloat = 2.2
mybool = True
mynone = None
mystr = "hello"
mylist = [1, 2, 3]
mytuple = (1, 2, 3)
myset = set([1, 2, 3])
mydict = {"a": 1, "b": 2, "c": 3}

print(isinstance(myint, Iterable))   # False
print(isinstance(myfloat, Iterable)) # False
print(isinstance(mybool, Iterable))  # False
print(isinstance(mynone, Iterable))  # False
print(isinstance(mystr, Iterable))   # True
print(isinstance(mylist, Iterable))  # True
print(isinstance(mytuple, Iterable)) # True
print(isinstance(myset, Iterable))   # True
print(isinstance(mydict, Iterable))  # True

如果要对集合实现类似 c++,java 等那样的下标循环怎么办呢,Python 内置的 enumerate 函数可以把一个集合变成索引-成员对,这样就可以在 for...in 中同时迭代索引和成员(dict 是键)本身。

mylist = [1, 2, 3]
mydict = {"a": 1, "b": 2, "c": 3}

for index, item in enumerate(mylist):
    print(index, item)

for index, item in enumerate(mydict):
    print(index, item)

用 for...in 遍历集合时,我们得到的是集合的单个成员(dict 是 key),如果集合的单个成员也是一个集合, 我们可以用多个变量来带入该成员的成员,注意带入的变量个数必须和该成员每个成员的个数一致。

mylist = [(1, 2), (3, 4), (5, 6)]
mydict = {(1, 2): 1, (3, 4): 2, (5, 6): 3}

for itemone, itemtwo in mylist:
    print(itemone, itemtwo)

for index, item in mydict:
    print(itemone, itemtwo)

for itemone, itemtwo, itemthree in mylist:  # 错误
    print(itemone, itemtwo)

注意如果想用多个变量带入集合的成员,必须确保集合的成员是个集合,且集合成员的成员个数 是一样的。

mylist = [(1, 2), (3, 4), (5, 6, 7)]

for itemone, itemtwo in mylist:  # 错误
    pass

本节重要知识点

dict 遍历注意事项。

会使用 Iterable 和 enumerate。

点赞:0 分享

上一篇
Python3推导式
下一篇
Python3切片
作者头像 作者名称 作者性别
韩俊

热门推荐

1 python中collections库详解
2 Python多重继承
3 python3闭包函数
4 Python中@property的介绍与使用
5 Python3的构造函数和访问控制
6 Python3的list类型

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      退出登陆
      • 10358文章
      • 455评论
      • 80微语
  • 广告赞助

  • 二零二五年07月
    一二三四五六日
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 婚礼新郎祝福语简短励志
        • 嫁女结婚祝福语简短精辟
          • 祝医生节简短祝福语
            • 大童生日祝福语简短
              • 女孩参军祝福语大全简短
                • 敬平辈祝福语简短霸气
                  • 经典的黄句子
                    • 教师祝福语句简短唯美
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/10.jpg

      你丫的 文章写得太好了 支持下!![F3...

    • https://www.vipshare8.com/content/templates/meta/Static/images/avatar.jpg

      很棒!刚在某网站看到这个,很欣赏,可惜下...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3861064027

      呃呃呃 oooo

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了111:根据激活的时间有一年的有效期!

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=792480561

      到2025就到期了吗?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      [blockquote]打卡时间:16:...

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/7.jpg

      俊哥,想借用迅雷一用!但需要手机验证!看...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

  • 网站统计 I 当前在线:254人

    • 本站管理:1位
    • 用户总数:593位
    • 置顶文章:2篇
    • 日志总数:10358篇
    • 微语总数:80条
    • 评论总数:455条
    • 标签总数:83条
    • 页面总数:8页
    • 分类总数:14个
    • 链接总数:16条
    • 运行天数:3725天
    • 最后更新:7月9日
    • 登录
    • 注册
    • 找回
    Copyright © 2025vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日

    大家都在搜

    • nginx
    • 芒果视频
    • 爱奇艺VIP账号共享
    • 优酷vip账号共享
    • 网易云音乐会员
    • 咪咕会员账号
    • 微信小程序源码
    • seo优化
    • PHP
    • 哔哩哔哩vip会员账号
    • 土豆vip账号共享
    • 网站源码
    • 聊天app
    • 网赚
    • 手机赚钱软件
    • 爱奇艺会员账号共享
    • 
    • 