Python内置函数enumerate()

Python的内置函数enumerate()。在学习过程中遇到了一点小问题。记录一下。

`enumerate()` 是 Python 中常用的内置函数之一,它可以用来同时遍历序列的索引和对应的值。具体来说,`enumerate()` 接受一个可迭代对象作为参数,返回一个包含索引和值的元组的迭代器。

基本语法如下:

enumerate(iterable, start=0)

iterable:需要遍历的可迭代对象,如列表、元组、字符串等。
start:可选参数,指定索引的起始值,默认为 0,即从 0 开始。

返回的迭代器会生成类似 `(index, value)` 的元组,其中 `index` 是从 `start` 开始递增的整数,表示元素在可迭代对象中的索引,而 `value` 则是对应的元素值。

下面是一个简单的示例,演示了如何使用 `enumerate()`:

fruits = ['apple', 'banana', 'cherry']

for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

这将输出:

索引 0: apple
索引 1: banana
索引 2: cherry

在这个示例中,`enumerate()` 函数让我们可以在 `for` 循环中同时获得列表中的索引和值,方便处理带有索引信息的数据。

在一个小项目中错误的吧index和fruit位置搞错误了,导致程序不能正常运行。

具体如下

    def copyModifiedRowToTableWidget(self):
        """根据search_list修改materia_list内容"""
        # 遍历 found_rows 列表中的每一个行号
        for idx, row in enumerate(self.found_rows):
            # 复制 tableWidget_2 中该行的内容到 tableWidget 中对应行的单元格
            for col in range(self.ui.tableWidget_2.columnCount()):
                source_item = self.ui.tableWidget_2.item(row, col)
                if source_item:
                    newItem = QTableWidgetItem(source_item.text())
                    self.ui.tableWidget.setItem(idx, col, newItem)

在源代码(错误的)中该函数的功能是根据search_list修改materia_list内容。但此时是idx在row的去前面,就导致在修改列表时每次只能修改第一行的元素,不能修改其他行

此时点修改不能正确修改。

当修改代码使row,在idx的前面。可以正常运行

还有一种办法是修改源代码如下

 

下面的代码直观的说明了我的错误

# 测试代码
fruits = ['apple', 'banana', 'cherry']
print("错误的")
for index, fruit in enumerate(fruits):
    print(f"索引 {fruit}: {index}")

fruits = ['apple', 'banana', 'cherry']
print("正确的")
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/505412.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vuees6新语法

vue的学习网站: https://www.runoob.com/vue2/vue-tutorial.html1.Vue的介绍 学习目标 说出什么是Vue能够说出Vue的好处能够说出Vue的特点 内容讲解 【1】Vue介绍 1.vue属于一个前端框架,底层使用原生js编写的。主要用来进行前端和后台服务器之间的…

Holiday Notice

Holiday Notice 放假通知 要是每个公司都能放假放的多,把加班折算放假落实到位,还怕我们不努力干活,巴不得把全年都干完了,然后休息。

HCIP【GRE VPN配置】

目录 实验要求: 实验配置思路: 实验配置过程: 一、按照图式配置所有设备的IP地址 (1)首先配置每个接口的IP地址 (2)配置静态路由使公网可通 二、在公网的基础上创建GRE VPN隧道&#xff0…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(上)

介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用,主要功能包括: 用户可以创建最多6个健康生活任务(早起,喝水,吃苹果,每日微笑,刷牙,早睡),并设置任…

C++list的模拟实现

为了实现list&#xff0c;我们需要实现三个类 一、List的节点类 template<class T> struct ListNode {ListNode(const T& val T()):_pPre(nullptr),_pNext(nullptr),_val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val; }; 二、List的迭代器…

2024年腾讯云服务器99元一年_老用户优惠续费不涨价

腾讯云99元一年服务器配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff0c;新用户和老用户都可以购买&#xff0c;续费不涨价&#xff0c;续费价格也是99元一年。以往腾讯云优惠服务器都是新用户专享的&#xff0c;这款99元服务器老用户也可以购买&#xff0c;这是…

Spring Task 知识点详解、案例、源代码解析

简介&#xff1a;Spring Task 定时任务   所谓定时任务。就是依据我们设定的时间定时运行任务&#xff0c;就像定时发邮件一样&#xff0c;设定时间到了。邮件就会自己主动发送。 在Spring大行其道的今天&#xff0c;Spring也提供了其定时任务功能&#xff0c;Spring Task。同…

安装dalton过程中出现的pcre问题

在前面文章中&#xff0c;基于多种流量检测引擎识别pcap数据包中的威胁&#xff0c;并没有详细的说明dalton的安装。由于dalton提供了脚本./start-dalton.sh &#xff0c;执行之后会自动的安装各种依赖以及suricata&#xff0c;zeek&#xff0c;snort的容器环境。但是在实际执行…

编程新手必看!从零起步掌握Python的终极指南,Python简介(1)

1、Python语言的诞生 Python的作者&#xff0c;Guido von Rossum&#xff08;吉多范罗苏姆&#xff0c;中国Python程序员都叫他 龟叔&#xff09;&#xff0c;荷兰人。1982年&#xff0c;龟叔从阿姆斯特丹大学获得了数学和计算机硕士学位。然而&#xff0c;尽管他算得上是一位…

内存管理--柔性数组

本次讲的是&#xff0c;柔性数组&#xff0c;如果哪位小博客想要了解的更多&#xff0c;可以登录下面这个网站&#xff0c;了解详细内容 C语言结构体里的成员数组和指针 | 酷 壳 - CoolShellhttps://coolshell.cn/articles/11377.html 我们就听说过数组&#xff0c;听说过柔性数…

Excel求解二元一次方程

背景&#xff1a;如果想求解二元一次方程&#xff0c;常规方法就是联立方程求出一个未知数&#xff0c;然后带入任意一个等式。那么在excel里面应该怎么解决呢&#xff1f; 总所周知&#xff0c;大学里面会学矩阵行列式&#xff0c;二元一次方程其实就是一个简单的矩阵行列式。…

006 高并发内存池_PageCache设计

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;高并发内存池 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言文章重点一、回顾PageCache页缓存结构二、PageCache结构设计三、完善申请内存函数小结 前言 本文将…

聊一聊电子邮件?

电子邮件是什么&#xff1f; 电子邮件是一种基于客户/服务器架构的应用。功能是实现人与人之间的交流。直到现在&#xff0c;电子邮件依然是当前因特网 注意&#xff1a;基于客户/服务器方式和基于B/S架构不一样&#xff01;客户/服务器表示的范围更广&#xff0c;当基于客户…

Linux环境jdk、git、maven、MySQL和redis的安装和配置

这里整理了在Linux上如何安装和配置jdk、git、maven、MySQL和redis&#xff0c;主要用于在Linux上部署Java项目 文章中博主使用了一个叫FinalShell远程连接软件进行上传&#xff0c;如果没有类似的工具也可以直接通过yum命令行下载包 博主使用的Linux服务器为centos7&#xf…

2024最新版Android studio安装入门教程(非常详细)

目录 JDK安装与配置 一、下载JDK 二、JDK安装 三、JDK的环境配置 四、JDK的配置验证 Android studio安装 Android studio连接手机真机调试&#xff08;以华为鸿蒙为例&#xff09; 一、新建一个android项目 二、进入项目面板 三、配置Android Studio 四、安装手机驱…

【JavaSE】初识线程,线程与进程的区别

文章目录 ✍线程是什么&#xff1f;✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么&#xff1f; ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…

BigInteger的应用

这里写目录标题 例题BigInteger常用方法关于BigInteger初始化为nullcompareTo()方法 : 返回一个int型数据(1 大于; 0 等于 ; -1 小于) 例题 import java.math.BigInteger; import java.util.*; public class Main{public static void main(String[] args) {BigInteger n BigIn…

android 消息提醒

1.创建 MyBackgroundService.java 继承 Service public class MyBackgroundService extends Service {Overridepublic void onCreate() {super.onCreate();Log.i("业务服务", "开起业务服务");//调用服务后在页面手机上创建一个通知消息。if (android.os…

TS的基础

TS Typed JavaScript at Any Scale. 它强调了 TypeScript 的两个最重要的特性——类型系统、适用于任何规模。 我们知道&#xff0c;JavaScript 是一门非常灵活的编程语言&#xff0c; 它没有类型约束&#xff0c;一个变量可能初始化时是字符串&#xff0c;过一会儿又被赋值为…

如何用 C++ 在 10 行内写出八皇后?

在编程世界中&#xff0c;有时挑战在于以最简洁的方式表达复杂的逻辑。八皇后问题就是这样一道经典难题&#xff0c;它要求在88的棋盘上放置8个皇后&#xff0c;使得任意两个皇后之间都不能位于同一行、同一列或同一斜线上。虽然这个问题可以通过多种算法解决&#xff0c;包括递…