搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小小林熬夜学编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Android 常见界面控件(ListView、RecyclerView、自定义View篇)_listview控件
2
轻松识别几个小时的长音视频文件_funasr长对话提取断句时间长提取不到
3
微搭使用笔记(三) 数据模型介绍及初步使用_微搭数据模型设计一个产品多个价格
4
关于display inline-block的对齐问题_display:inline-block 上对其
5
一句命令解决huggingface.co无法下载模型问题_hf_endpoint
6
dubbo+zookeeper+springboot_dubbo zookeeper springboot
7
synchronized关键字详解
8
一日一技:Python + Excel——飞速处理数据分析与处理_excel+python
9
论文降重软件同义词替换哪个好用 快码论文_论文替换词软件
10
关于“Python”的核心知识点整理大全57
当前位置:
article
> 正文
十五、高级特性之迭代_当一个特性验收很困难,怎么放入迭代
作者:小小林熬夜学编程 | 2024-03-23 12:46:51
赞
踩
当一个特性验收很困难,怎么放入迭代
迭代
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
在Python中,迭代是通过for ... in来完成的,而很多语言比如C语言,迭代list是通过下标完成的,比如Java代码:
for (i=0; i<list.length; i++) { n = list[i];}
可以看出,Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。
list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:
>>> d = {'a': 1, 'b': 2, 'c': 3}>>> for key in d:... print(key)...acb
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。
由于字符串也是可迭代对象,因此,也可以作用于for循环:
>>> for ch in 'ABC':... print(ch)...ABC
所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。
那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
>>> from collections import Iterable>>> isinstance('abc', Iterable) # str是否可迭代True>>> isinstance([1,2,3], Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整数是否可迭代False
最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
>>> for i, value in enumerate(['A', 'B', 'C']):... print(i, value)...0 A1 B2 C
上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:
>>> for x, y in [(1, 1), (2, 4), (3, 9)]:... print(x, y)...1 12 43 9
练习
请使用迭代查找一个list中最小和最大值,并返回一个tuple:
# -*- coding: utf-8 -*-def findMinAndMax(L):
# 测试if findMinAndMax([]) != (None, None): print('测试失败!')elif findMinAndMax([7]) != (7, 7): print('测试失败!')elif findMinAndMax([7, 1]) != (1, 7): print('测试失败!')elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9): print('测试失败!')else: print('测试成功!')
小结
任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/295245
推荐阅读
article
一个
为
制造业
而生的
AI
助手,
普通员工
向它提问就能做
数据分析
...
赖可 发自 凹非寺量子位 报道 | 公众号 Qbit
AI
制造业
正面临着新境遇。产业链、供应链周期变短,不确定因素增加。数...
赞
踩
article
python
提取
图片
中的
文字
_
python
提取
图片
文字
...
python
提取
图片
中的
文字
准备工作完整代码错误代码OCR,全称Optical character recognitio...
赞
踩
article
Yolov7
代码
解析_
yolov7
代码
逐行解析...
增加了 Aux Head,Aux head也参与损失函数的计算并反向传播参与协助前面的层更新参数。多了一条有两个卷积的支...
赞
踩
article
虚拟机
CentOS
有线
连接
图标直接消失,
网络
连接
不上,
网络
连接
失败的
解决方案
(亲测有效)_cen...
虚拟机
CentOS
右上角有线
连接
图标直接消失,
网络
连接
不上,也不显示,
解决方案
亲测有效_
centos
网络
图标不见了c...
赞
踩
article
大
模型
面试
面经
:简单透彻理解
MoE
_
模型
推理
面经
...
LLM 时代流传着一个法则:Scaling Law,即通过某种维度的指数上升可以带来指标的线性提升。如下图所示,在 Co...
赞
踩
article
Mac
系统下安装
Gradle
,并
配置
环境变量
_
mac
配置
gradle4.0
...
【代码】
Mac
系统下安装
Gradle
,并
配置
环境变量
。_
mac
配置
gradle4.0
mac
配置
gradle4.0
...
赞
踩
article
物
联网
云
组态
是
什么
?部署
物
联网
云
组态
有
什么
作用?...
在信息化与工业化的深度融合进程中,
物
联网
云
组态
以其独特的优势,正在成为企业数字化转型的重要工具。那么,
物
联网
云
组态
究竟是...
赞
踩
article
grid
布局
使用总结_
grid
-
template
-
columns
...
父元素属性:属性 说明 display 设置
grid
布局
...
赞
踩
article
Python
数据分析
实用网站...
公开数据集http://data.okfn.org/ 免费数据集仓库,有各类数据集
Python
数据分析
实用网站 ...
赞
踩
article
解构
赋值的应用
_
const
{
data
}
=
res
...
结构前 //
解构
data
对象重命名为
res
const
{
data
:
res
}
=
await this.$ht...
赞
踩
article
Python
爬虫
基础—
安装
第三方
模块
及
使用
_
pycharm
爬虫
需要
安装
什么
模块
...
安装
第三方
模块
及
使用
_
pycharm
爬虫
需要
安装
什么
模块
pycharm
爬虫
需要
安装
什么
模块
...
赞
踩
article
解决
jetbrains
-
toolbox
缺失
修改
安装
路径
默认
安装
C盘问题_
jetbrains
tool...
前一阵子使用 ToolBox 的时候还可以
修改
IDEA 的
安装
路径
,但是过了一段时间在家里电脑发现无法没有了
修改
安装
路...
赞
踩
article
消失
点
:
Fast
and
Accurate
Vanish
in
g Po
in
t Detection
in
...
文章中算法的大体框架如下:首先,通过WOD获取图像的特征。然后,基于差励计算出有效的道路线索。最终,使用文中提出的l
in
...
赞
踩
article
Vue实战
--
笔记_
vue
一个
接口
发起
多次
请求
。怎么判断是在哪...
1. 配置数据
请求
接口
1.1 main.js内定义
接口
路径// 配置
请求
的根路径axios.defaults.baseU...
赞
踩
article
【鸿蒙开发】第十六章
ArkTS
基础类库-
容器
(
数据结构
)_鸿蒙
arkts
语言
操作
sqlserver
...
容器
类库:用于存储各种数据类型的元素,并具备一系列处理数据元素的方法,作为纯
数据结构
容器
来使用具有一定的优势。
容器
类采用...
赞
踩
article
软件
版本号
扫盲——
Beta
RC Preview
release
等_
trail
和
beta
...
1、
软件
版本阶段说明*Alpha版:此版本表示该
软件
在此阶段主要是以实现
软件
功能为主,通常只在
软件
开发者内部交流,一般而...
赞
踩
article
micro
bit
编程
_
Micro
:
bit
少儿
编程
入门第一课...
Micro
:
bit
介绍
Micro
:
bit
板子是BBC为主导设计的ARM架构的单片机。板载温度、蓝牙、加速度计、电子罗盘...
赞
踩
article
mac
安装
pip
...
目录前言
安装
安装
后前言
pip
是常用的python包管理工具,虽然mac自带了2.7的python,但
pip
需要我们手动安...
赞
踩
article
Android
Wifi
——
WLAN
直连
(十三)_
android
wifi
直连
...
WLAN
直连
(对等连接或P2P) 技术,通过
WLAN
进行直接互联。使用这些 API,您可以实现支持
WLAN
P...
赞
踩
article
【
数据结构
】
八大
排序
算法
详解...
【
数据结构
】
八大
排序
算法
详解【
数据结构
】
八大
排序
算法
详解 主页:醋溜马桶圈-CSDN博客 专栏...
赞
踩
相关标签
OCR
pytesseract
图像识别
YOLO
python
深度学习
centos
linux
运维
服务器
ubuntu
算法
大模型
人工智能
macos
gradle
物联网
js
css
css3
vue
react
机器学习
数据挖掘