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学习笔记 下载
Feb 10 Python
Python实现CET查分的方法
Mar 10 Python
Python下的subprocess模块的入门指引
Apr 16 Python
python实现百度语音识别api
Apr 10 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 Python
python字符串反转的四种方法详解
Dec 02 Python
Python搭建HTTP服务过程图解
Dec 14 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
python字符串常规操作大全
May 02 Python
PyTorch 如何自动计算梯度
May 23 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
世界上第一台立体声收音机
2021/03/01 无线电
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php面向对象值单例模式
2016/05/03 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
js格式化时间小结
2014/11/03 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
如何利用python生成MD5并去重
2020/12/07 Python
中学生打架检讨书
2014/02/10 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
小学教师读书笔记
2015/07/01 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
浅谈Python基础之列表那些事儿
2021/05/11 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
python双向链表实例详解
2022/05/25 Python