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实现web端用户登录和注册功能的教程
Apr 30 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
对numpy中向量式三目运算符详解
Oct 31 Python
Python正则表达式和re库知识点总结
Feb 11 Python
python或C++读取指定文件夹下的所有图片
Aug 31 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python实现语音常用度量方法的代码详解
May 25 Python
手残删除python之后的补救方法
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
php中文本操作的类
2007/03/17 PHP
php zip文件解压类代码
2009/12/02 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
jQuery中Dom的基本操作小结
2014/01/23 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
canvas绘制七巧板
2017/02/03 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
python根据出生日期返回年龄的方法
2015/03/26 Python
python更改已存在excel文件的方法
2018/05/03 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Python连接Redis的基本配置方法
2018/09/13 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
团员学习总结的自我评价范文
2013/10/14 职场文书
金融专业推荐信
2013/11/14 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
结婚邀请函范文
2014/01/14 职场文书
财政专业求职信范文
2014/02/19 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
python+opencv实现目标跟踪过程
2022/06/21 Python