无名商城论坛

搜索
查看: 226|回复: 0

[其他技术] 【LSP】迭代器解析

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:02:05 | 显示全部楼层 |阅读模式


6.7 迭代器可迭代对象iterable首先可以使用isinstance(对象名,Iterable)验证某一对象是否为可迭代对象# 验证字符串、元组、列表、字典、集合类型是否为可迭代对象from collections.abc import Iterableint1 = 12306str1 = "MondayTuesdaywednesdayThursdayFridaySaturdaySunday"tuple1 = ("Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday")list1 = ["Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday"]dict1 = {"Monday": "星期一", "Tuesday": "星期二", "wednesday": "星期三", "Thursday": "星期四", "Friday": "星期五", "Saturday": "星期六",         "Sunday": "星期日", }set1 = {"Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday"}print(isinstance(int1, Iterable))print(isinstance(str1, Iterable))print(isinstance(tuple1, Iterable))print(isinstance(list1, Iterable))print(isinstance(dict1, Iterable))print(isinstance(set1, Iterable))output:FalseTrueTrueTrueTrueTrue# 验证的结果是字符串、元组、列表、字典、集合类型都是可迭代对象,数值不是可迭代对象。可迭代对象的意思就是说这个实体是可迭代的,例如字符串、列表、元组、字典、集合、迭代器等等,可以用for ... in进行循环,# 那么都可用for循环进行迭代取值,以元组为例tuple1 = ("Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday")for i in tuple1:    print(i,end=',')output:Monday,Tuesday,wednesday,Thursday,Friday,Saturday,Sunday,可以使用for循环迭代的标志是每个对象内部实现了__iter__方法,验证下每个可迭代对象是否有这个方法str1 = "MondayTuesdaywednesdayThursdayFridaySaturdaySunday"tuple1 = ("Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday")list1 = ["Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday"]dict1 = {"Monday": "星期一", "Tuesday": "星期二", "wednesday": "星期三", "Thursday": "星期四", "Friday": "星期五", "Saturday": "星期六", "Sunday": "星期日", }set1 = {"Monday", "Tuesday", "wednesday", "Thursday", "Friday", "Saturday", "Sunday"}print(("__iter__" in dir(str1)))print(("__iter__" in dir(tuple1)))print(("__iter__" in dir(list1)))print(("__iter__" in dir(dict1)))print(("__iter__" in dir(set1)))output:TrueTrueTrueTrueTrue可迭代对象不是迭代器,如何变成迭代器呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表