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根据出生日期获得年龄的方法
Mar 31 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
详解Python并发编程之从性能角度来初探并发编程
Aug 23 Python
Python进度条的制作代码实例
Aug 31 Python
python的mysql数据库建立表与插入数据操作示例
Sep 30 Python
打包PyQt5应用时的注意事项
Feb 14 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Python ellipsis 的用法详解
Nov 20 Python
python自动化调用百度api解决验证码
Apr 13 Python
python中filter,map,reduce的作用
Jun 10 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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
php异常处理捕获错误整理
2019/09/23 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
VUE重点问题总结
2018/03/19 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
实现vuex原理的示例
2020/10/21 Javascript
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python返回数组/List长度的实例
2018/06/23 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
毕业生的自我评价分享
2013/12/18 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2015年教师节活动总结
2015/03/20 职场文书
男生贾里读书笔记
2015/06/30 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Golang解析JSON对象
2022/04/30 Golang
Python中的socket网络模块介绍
2022/07/23 Python