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 面向对象 成员的访问约束
Dec 23 Python
python利用datetime模块计算时间差
Aug 04 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python tkinter事件高级用法实例
Jan 31 Python
python2.7实现FTP文件下载功能
Apr 15 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Python os.access()用法实例
Feb 18 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
keras 权重保存和权重载入方式
May 21 Python
浅析Django接口版本控制
Jun 26 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
PHP4实际应用经验篇(8)
2006/10/09 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
JS作用域链详解
2017/06/26 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
pytorch进行上采样的种类实例
2020/02/18 Python
Python的历史与优缺点整理
2020/05/26 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
求网格中的黑点分布
2013/11/06 面试题
在校学生职业规划范文
2014/01/08 职场文书
委托书模板
2014/04/04 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
考察邀请函范文
2015/01/31 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
罚款通知怎么写
2015/04/22 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书