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基于socket实现网络广播的方法
Apr 29 Python
python使用pymysql实现操作mysql
Sep 13 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
python2.x实现人民币转大写人民币
Jun 20 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
django自带调试服务器的使用详解
Aug 29 Python
flask 实现token机制的示例代码
Nov 07 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
Python爬取某拍短视频
Jun 11 Python
Python中22个万用公式的小结
Jul 21 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断点续传之如何分割合并文件
2014/03/22 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
详解vue-router传参的两种方式
2018/09/10 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
django中send_mail功能实现详解
2018/02/06 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
软件测试笔试题
2012/10/25 面试题
个人银行贷款担保书
2014/04/01 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
2014年稽查工作总结
2014/12/20 职场文书
2015年服务员工作总结
2015/04/08 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers