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中os.path用法分析
Jan 15 Python
详解Python命令行解析工具Argparse
Apr 20 Python
浅述python中argsort()函数的实例用法
Mar 30 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
Python常用库大全及简要说明
Jan 17 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
python的json包位置及用法总结
Jun 21 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
Python实现自动装机功能案例分析
Oct 22 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
PHP脚本数据库功能详解(上)
2006/10/09 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
javascript some()函数用法详解
2014/11/13 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
python正则实现提取电话功能
2018/02/24 Python
pandas中ix的使用详细讲解
2020/03/09 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Python configparser模块常用方法解析
2020/05/22 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
竞选大队长演讲稿
2014/04/29 职场文书
公安学专业求职信
2014/07/27 职场文书
明星员工获奖感言
2014/08/14 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
军人离婚协议书样本
2014/10/21 职场文书
教师创先争优承诺书
2015/04/27 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
Django 实现jwt认证的示例
2021/04/30 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android