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的logging模块在stdout输出的两种方法
May 17 Python
python使用fork实现守护进程的方法
Nov 16 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
python实现超市扫码仪计费
May 30 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
python使用turtle绘制分形树
Jun 22 Python
Python版名片管理系统
Nov 30 Python
Python数据可视化之画图
Jan 15 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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
实用函数4
2007/11/08 PHP
PHP 危险函数全解析
2009/09/09 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
PHP7 新增功能
2021/03/09 PHP
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
python实现图片处理和特征提取详解
2017/11/13 Python
手把手教你python实现SVM算法
2017/12/27 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Django视图扩展类知识点详解
2019/10/25 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
酒店前台岗位职责
2015/04/16 职场文书
付款证明模板
2015/06/19 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL