Python 可迭代对象 iterable的具体使用


Posted in Python onAugust 07, 2021

前置知识

如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple,这种遍历我们称为迭代(Iteration)

在 Python 中,迭代是通过 for ... in 来完成的

lists = [1, 2, 3, 4, 5]
for i in lists:
    print(i)

可迭代对象

for 循环不仅可以用在 list 或 tuple 上,还可以用在其他可迭代对象上
list 这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是只要是可迭代对象,无论有无下标,都可以迭代

dicts = {
    "a": 1,
    "b": 2
}
for i in dicts:
    print(i)

# 输出结果
a
b

如何判断一个对象是否是可迭代对象?

from collections import Iterable

lists = [1, 2, 3, 4, 5]

dicts = {
    "a": 1,
    "b": 2
}

print(isinstance(lists, Iterable))
print(isinstance(dicts, Iterable))
print(isinstance({"test"}, Iterable))
print(isinstance(1234, Iterable))

# 输出结果
True
True
True
False

enumerate 函数

循环列表的话,默认是只返回元素值,如果想同时拿到元素值和对应的下标值呢?
enumerate 函数可以把 list 变成一个 索引-元素对的迭代对象,然后循环遍历这个对象即可

lists = [1, 2, 3, 4, 5]

# 看看是不是迭代对象
print(isinstance(enumerate(lists), Iterable))

# 循环
for ind, val in enumerate(lists):
    print(ind, val)

# 输出结果
True
0 1
1 2
2 3
3 4
4 5

多嵌套列表

for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x, y)

# 输出结果
1 1
2 4
3 9

总结

任何可迭代对象都可以作用于 for 循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用 for 循环

到此这篇关于Python 可迭代对象 iterable的具体使用的文章就介绍到这了,更多相关Python 可迭代对象 iterable内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python进程管理工具supervisor使用实例
Sep 17 Python
python字符串替换的2种方法
Nov 30 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
利用python中集合的唯一性实现去重
Feb 11 Python
python实现处理mysql结果输出方式
Apr 09 Python
python多进程下的生产者和消费者模型
May 07 Python
如何表示python中的相对路径
Jul 08 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
Python pandas之求和运算和非空值个数统计
Aug 07 #Python
关于Python中*args和**kwargs的深入理解
Aug 07 #Python
python3操作redis实现List列表实例
Aug 04 #Python
Python pandas求方差和标准差的方法实例
Aug 04 #Python
pandas求平均数和中位数的方法实例
Aug 04 #Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 #Python
Python内置数据结构列表与元组示例详解
You might like
用php解析html的实现代码
2011/08/08 PHP
php日历制作代码分享
2014/01/20 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
浅析javascript的return语句
2015/12/15 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python实现代码统计工具
2019/09/19 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
自荐书模板
2013/12/15 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
采购意向书范本
2014/03/31 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
行风评议整改报告
2014/11/06 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
英语导游欢迎词
2015/09/30 职场文书