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 11 Python
Django中使用locals()函数的技巧
Jul 16 Python
python opencv之SIFT算法示例
Feb 24 Python
python操作mysql代码总结
Jun 01 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
django模板加载静态文件的方法步骤
Mar 01 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
基于python实现模拟数据结构模型
Jun 12 Python
通俗讲解python 装饰器
Sep 07 Python
python如何运行js语句
Sep 09 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 文件状态缓存带来的问题
2008/12/14 PHP
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
js实现登录验证码
2016/12/22 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
教师党员承诺书
2014/03/25 职场文书
出生证明公证书
2014/04/09 职场文书
学校评语大全
2014/05/06 职场文书
让生命充满爱观后感
2015/06/08 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
goland设置颜色和字体的操作
2021/05/05 Golang
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python