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 (2)
Oct 31 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
python WindowsError的错误代码详解
Jul 23 Python
Python分支结构(switch)操作简介
Jan 17 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
python3射线法判断点是否在多边形内
Jun 28 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
Python递归函数特点及原理解析
Mar 04 Python
keras中的History对象用法
Jun 19 Python
python数据分析之用sklearn预测糖尿病
Apr 22 Python
Python+Appium实现自动抢微信红包
May 21 Python
python实现学员管理系统(面向对象版)
Jun 05 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
杏林同学录(六)
2006/10/09 PHP
PHP代码优化技巧小结
2015/09/29 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python下载微信公众号相关文章
2019/02/26 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
python图形用户接口实例详解
2019/12/16 Python
如何利用Python写个坦克大战
2020/11/18 Python
经济学人订阅:The Economist
2018/07/19 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
《最可爱的人》教学反思
2014/02/14 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
奥利奥广告词
2014/03/20 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python