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下的多进程编程
Apr 28 Python
python随机数分布random测试
Aug 27 Python
python3.x实现base64加密和解密
Mar 28 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Python ATM功能实现代码实例
Mar 19 Python
深入了解Python enumerate和zip
Jul 16 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python 如何实现遗传算法
Sep 22 Python
分享一个python的aes加密代码
Dec 22 Python
python实现PolynomialFeatures多项式的方法
Jan 06 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
angular4中引入echarts的方法示例
2019/01/29 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue实现拖拽效果
2019/12/23 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
会计专业自荐信
2013/12/02 职场文书
公司委托书格式范文
2014/04/04 职场文书
学习之星事迹材料
2014/05/17 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python