python零基础知识 - 定义列表的三种方式,循环列表索引值

这一小节,我们将从零基础的角度看一下,python都有哪些定义列表的方式,并且循环这个列表的时候,怎么循环,怎么循环他的索引值,怎么拿到的就是元素值。

说完循环,我们会说一说关键的breakcontinue关键操作,以及数组去重有哪些方式。

目录

1 定义列表的三种方式

1.1 第一种 列表推导式

1.2  list()构造函数

1.3 中括号直接定义 

2 循环一个列表 

2.1 简单的循环一下

2.2 循环索引值 

3 break和continue不要忘记

4 关于数组去重

4.1 set去重

4.2 列表推导式

4.3 循环方法 


1 定义列表的三种方式

1.1 第一种 列表推导式

列表推导式提供了一种简洁的方法来创建列表,它可以根据一个表达式来生成列表的元素。语法是在一个方括号内放置一个表达式,后跟一个 for 循环,然后可能还有零个或多个 if 条件。例如:

# 创建一个包含1到5的平方的列表
squares = [x**2 for x in range(1, 6)]
# 输出:[1, 4, 9, 16, 25]

1.2  list()构造函数

list() 构造函数可以接受一个可迭代对象(如字符串、元组或其他可迭代对象)作为参数,并将其转换为一个列表。例如:

# 使用list()构造函数将字符串转换为列表
char_list = list("hello")
# 输出:['h', 'e', 'l', 'l', 'o']

1.3 中括号直接定义 

最常用的就是实用中括号直接定义一个列表,来定义一个列表。列表是一个有序的可变容器,它可以包含任意数量和类型的元素。以下是定义一个列表的示例:

my_list = [1, 2, 3, 4, 5]或者是mixed_list = [1, "hello", 3.14, True]

2 循环一个列表 

循环列表,拿到的是元素值,我们还可以循环索引值

2.1 简单的循环一下

直接使用 for 循环来遍历列表中的元素,而不需要使用索引。在Python中,你可以像这样遍历列表:

l = [1, 4, 3, 6, 7, 8, 2]
for item in l:print(item, end=";")

2.2 循环索引值 

l = [1, 4, 3, 6, 7, 8, 2]
for i in range(len(l)):if i % 2 == 0:print(l[i], end=";")

这段代码会输出列表 l 中索引为偶数的元素,并且用分号分隔开。让我们逐行分析一下:

  1. l = [1, 4, 3, 6, 7, 8, 2] 定义了一个包含整数的列表。
  2. for i in range(len(l)): 使用 range(len(l)) 循环遍历列表 l 的索引。
  3. if i % 2 == 0: 检查当前索引 i 是否为偶数
  4. print(l[i], end=";") 如果当前索引为偶数,则打印列表 l 中对应索引的元素,并用分号结尾。

因此,代码将会输出列表 l 中索引为偶数的元素,用分号分隔开。在这种情况下,输出将会是:1;3;7;2;

3 break和continue不要忘记

我发现很多开发人员,特别不喜欢加这两个基础内容,找到自己喜欢的值就算写完了,但其实关键时刻break掉循环还是挺重要的,基本写法如下:

# 示例列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 使用 break 来提前退出循环
print("使用 break 来提前退出循环:")
for number in numbers:if number == 6:break  # 当数字为 6 时退出循环print(number)# 使用 continue 来跳过某些循环迭代
print("\n使用 continue 来跳过某些循环迭代:")
for number in numbers:if number % 2 == 0:continue  # 如果数字为偶数,则跳过后续代码,进行下一次迭代print(number)

4 关于数组去重

4.1 set去重

可以使用 Python 的集合(set)来实现。集合是一种无序且不重复的数据类型,因此将列表转换为集合后,所有重复的元素都会被自动去除。然后你可以将结果转换回列表。

def remove_duplicates(lst):# 将列表转换为集合,去除重复元素unique_set = set(lst)# 将集合转换回列表,保持原始顺序unique_list = list(unique_set)return unique_list# 测试方法
original_list = [1, 2, 3, 4, 1, 2, 5, 6, 3]
result_list = remove_duplicates(original_list)
print("原始列表:", original_list)
print("去重后的列表:", result_list)

4.2 列表推导式

在这个方法中,dict.fromkeys() 方法将列表中的元素作为字典的键,创建一个字典,由于字典的键是唯一的,这样就自动去除了重复元素。然后使用 list() 方法将字典的键转换回列表。

def remove_duplicates(lst):return list(dict.fromkeys(lst))# 测试方法
original_list = [1, 2, 3, 4, 1, 2, 5, 6, 3]
result_list = remove_duplicates(original_list)
print("原始列表:", original_list)
print("去重后的列表:", result_list)

4.3 循环方法 

使用一个额外的空列表 unique_list,遍历原始列表中的每个元素,如果元素不在 unique_list 中,则将其添加到 unique_list 中。这样就保证了 unique_list 中的元素是唯一的。

def remove_duplicates(lst):unique_list = []for item in lst:if item not in unique_list:unique_list.append(item)return unique_list# 测试方法
original_list = [1, 2, 3, 4, 1, 2, 5, 6, 3]
result_list = remove_duplicates(original_list)
print("原始列表:", original_list)
print("去重后的列表:", result_list)

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

i春秋-GetFlag

题目 考点 sql注入,md5加密,代码审计,利用eval函数 解题 参考wp https://www.cnblogs.com/qiaowukong/p/13630130.html找md5值 看见验证码中的提示,就是去找一个md5值前六位是指定值的数(严格来说不一定是数&…

【userfaultfd+条件竞争劫持modprobe_path】TSGCTF 2021 -- lkgit

前言 入门题,单纯就是完成每日一道 kernel pwn 的 kpi 😀 题目分析 内核版本:v5.10.25,可以使用 userfaultfd,不存在 cg 隔离开启了 smap/smep/kaslr/kpti 保护开启了 SLAB_HADNERN/RANDOM 保护 题目给了源码&…

第二步->手撕spring源码之bean操作

本步骤目标 本步骤继续完善 Spring Bean 容器框架的功能开发,在这个开发过程中会用到较多的接口、类、抽象类,它们之间会有类的实现、类的继承。 这一次我们把 Bean 的创建交给容器,而不是我们在调用时候传递一个实例化好的 Bean 对象&#x…

【git】通过JetBrains IDE对git的操作

应该适用于所有jetbrains产品。 一、拉取(pull)代码 上方工具栏-Git-克隆。然后填写git地址与本地存放地址。 二、搁置 修改代码后搁置代码(不提交,但是也不撤销已修改的代码,把它暂存起来)。 界面的左上角。1->2->3。…

【网站项目】SpringBoot803房屋租赁管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

14.跳跃游戏Ⅱ

文章目录 题目简介题目解答解法一:贪心算法动态规划代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 跳跃游戏Ⅱ 相关的讲解!😀 题目简介 题目解答 解法一:贪心算法动态规划…

《QT实用小工具·六十三》QT实现微动背景,界面看似静态实则动态

1、概述 源码放在文章末尾 该项目实现了微动背景,界面看似静态实则动态,风动,幡动,仁者心动,所以到底是什么在动?哈哈~ 界面会偷偷一点一点改动文字颜色的颜色填充。 虽然是动态,但是慢到难以…

Python---Numpy万字总结(2)

NumPy的应用(2) 数组对象的方法 获取描述统计信息 描述统计信息主要包括数据的集中趋势、离散程度和频数分析等,其中集中趋势主要看均值和中位数,离散程度可以看极值、方差、标准差等 array1 np.random.randint(1, 100, 10) …

【linux软件基础知识】如何使用 run_list 字段将任务放入就绪队列中

在给定的代码片段中,struct task_struct 表示内核中任务或进程的进程控制块 (PCB)。 run_list 字段的类型为 struct list_head,这表明它是链表实现的一部分。 run_list字段在Linux内核中常用来表示任务在调度队列中的位置,例如就绪队列或各种优先级队列。 init_task是一个…

单链表经典算法LeetCode--203.移除链表元素(两种方法解)

1.链接:. - 力扣(LeetCode)【点击即可跳转】 分析此题提供两种思路: 1.遍历原链表,将值为val的节点释放掉(双指针法) 定义一个pcur指针指向头节点,定义一个prev指针指向NULL 需要注…

Coursera吴恩达深度学习专项课程01: Neural Networks and Deep Learning 学习笔记 Week 01

Week 01 of Neural Networks and Deep Learning Course Certificate 本文是学习 https://www.coursera.org/learn/neural-networks-deep-learning 这门课的笔记 Course Intro 文章目录 Week 01 of Neural Networks and Deep Learning[0] Welcome to the Deep Learning Spec…

深度学习——前馈全连接神经网络

前馈全连接神经网络 1.导入需要的工具包2.数据导入与数据观察(1)读取csv的文件信息:(2)训练数据前5行(3)打印第一个图(4)观察数据中的信息(5)查看…

数据中台:企业数字化转型的桥梁_光点科技

在数字化日益深入企业核心运营的今天,数据中台作为一个关键的信息化架构,正逐渐崭露头角,成为连接企业各部门、优化数据管理和推动业务创新的重要桥梁。 一、数据中台:连接与整合的桥梁 数据中台的核心作用在于连接与整合。传统的…

【计算机毕业设计】基于SSM++jsp的公司员工信息管理系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 目的和意义 1.3 论文结构安排 2 相关技术 2.1 SSM框架介绍 2.2 B/S结构介绍 2.3 Mysql数据库介绍 3 系统分析 3.1 系统可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 运行可行性分析 3.2 系统性能分析 3.2.1 易用性指标 3.2.2 可…

事件高级部分

一,注册事件 即给元素添加事件 1.传统注册方式 2.方法监听注册方式 事件类型:字符串形式,不用带on 可以给一个元素添加多个程序 二.删除事件 1.方式 参数见上文 三.DOM事件流 事件的传播过程叫做事件流 js代码只能获取一个阶段&#xf…

OpenGL导入的纹理图片错位

在OpenGL中导入图片的纹理照片的函数为 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, p_w, p_h, 0, GL_BGR, GL_UNSIGNED_BYTE, pic_data);其中p_w, p_h为图片的宽和高,pic_data为指向图片存储空间的的地址(unsigned char *类型) 在OpenGL中图片默认是4字节对齐的&…

JUC下的BlockingQueue详解

BlockingQueue是Java并发包(java.util.concurrent)中提供的一个接口,它扩展了Queue接口,增加了阻塞功能。这意味着当队列满时尝试入队操作,或者队列空时尝试出队操作,线程会进入等待状态,直到队列状态允许操作继续。这…

HDFS HA 修改nameservice

本例中修改将原来的hdfs-ha 修改为 hdfs-ns 停止HDFS, 防止新的业务操作 等待停止结束 KDE中需要调整的配置项如下图所示 a.搜索栏找到fs.defaultFS,将hdfs://hdfs-ha改为hdfs://hdfs-ns b.搜索栏找到dfs.nameservices,将hdfs-ha改为hdfs-ns c.搜索栏找…

设施农业(大棚种植)远程监控系统设计 STM32+51单片机 含pcb 上下位机源码 原理图

目录 摘要 1. 引言 2. 系统方案 3. 系统硬件设计 4. 系统软件设计 5. 系统创新 6. 评测与结论 7、实物图 8、原理图 ​9、程序 10、资料内容 资料下载地址:设施农业(大棚种植)远程监控系统设计 STM3251单片机 含pcb 上下位机源码 原理图 论文 摘要 …

FileLink跨网文件传输医疗行业解决方案

随着医疗行业的快速发展,医疗机构之间的信息共享和文件传输需求日益增加。然而,由于网络环境的复杂性和数据安全性的要求,传统的文件传输方式已经无法满足医疗行业的需求。为此,我们推出了FileLink跨网文件传输医疗行业解决方案&a…