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 14 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
Python中表示字符串的三种方法
Sep 06 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
Python简单处理坐标排序问题示例
Jul 11 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
Python双链表原理与实现方法详解
Feb 22 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
parser.add_argument中的action使用
Apr 20 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 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
javascript 小型动画组件与实现代码
2010/06/02 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
js中url对象化管理分析
2017/12/29 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
python中正则的使用指南
2016/12/04 Python
python定向爬取淘宝商品价格
2018/02/27 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
质量月活动策划方案
2014/03/10 职场文书
创业培训计划书
2014/05/03 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android