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

news2024/11/15 7:00:41

这一小节,我们将从零基础的角度看一下,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.coloradmin.cn/o/1666566.html

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

相关文章

分布式存储故障导致数据库无法启动故障处理---惜分飞

国内xx医院使用了国外医疗行业龙头的pacs系统,由于是一个历史库,存放在分布式存储中,由于存储同时多个节点故障,导致数据库多个文件异常,数据库无法启动,三方维护人员尝试通通过rman归档进行应用日志,结果发现日志有损坏报ORA-00354 ORA-00353,无法记录恢复,希望我们给予支持 M…

AI智能分析高精度烟火算法EasyCVR视频方案助力打造森林防火建设

一、背景 随着夏季的来临,高温、干燥的天气条件使得火灾隐患显著增加,特别是对于广袤的森林地区来说,一旦发生火灾,后果将不堪设想。在这样的背景下,视频汇聚系统EasyCVR视频融合云平台AI智能分析在森林防火中发挥着至…

人脸消费给传统食堂带来的变化

消费的技术基础是脸部识别,脸部识别是基于人的容貌特征信息进行认证的生物特征识别技术,其突出的特征是以非接触方式进行识别,避免个人信息的泄露。 面部识别和指纹识别、掌纹识别、视网膜识别、骨骼识别、心率识别等都是人体生物特征识别技术…

自然资源-城镇开发边界内详细规划编制技术指南解读

自然资源-城镇开发边界内详细规划编制技术指南解读

护眼台灯和普通台灯差别很大吗?专业护眼灯品牌有哪些?

随着科技的不断演进,台灯的设计也日益脱胎换骨,从曾经的笨重造型转变为如今轻盈雅致的外观。它们的功能同样经历了多样化的革新,变得更加人性化和便捷。作为学习、阅读和办公环境中不可或缺的照明工具,台灯所提供的光线舒适度至关…

redis抖动问题导致延迟或者断开的处理方案

目录: 1、使用背景2、redis重试机制3、redis重连机制4、其他一些解决redis抖动问题方案 1、使用背景 客户反馈文件偶现打不开,报错现象是session not exist,最终定位是redis抖动导致的延迟/断开的现象,最终研发团方案是加入redis…

电脑nvidia驱动和合适版本的duda--自用 回忆版

参考文献:http://t.csdnimg.cn/ecDuG 内容很多抄的这个,主要害怕链接失效 一、Ubuntu 18.04 安装NVIDIA显卡驱动 1、查看本机显卡能够配置的驱动信息 ubuntu-drivers devices所以可以看出,推荐 nvidia-driver-530 - distro non-free 2、安…

HTML/CSS2

1.前置说明 HTML/CSS1 2.img元素 格式&#xff1a; <img src"图片地址" alt"占位文字" width"图片宽度" height"图片高度">其中alt是当图片加载失败时显示的文字 而且不同内核的浏览器显示出来的占位文字的效果也是不尽相同…

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

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

Elasticsearch入门基础和集群部署

Elasticsearch入门基础和集群部署 简介基础概念索引&#xff08;Index&#xff09;类型&#xff08;Type&#xff09;&#xff08;逐步弃用&#xff09;文档&#xff08;Document&#xff09;字段&#xff08;Field&#xff09;映射&#xff08;Mapping&#xff09;分片&#x…

人工智能能否解决科学问题:Wolfram的视角

引言 在当今AI技术飞速发展的背景下&#xff0c;它在科学研究领域的应用正逐渐深入。从AlphaFold 3的推出到日益复杂的计算模型&#xff0c;AI似乎在向科学家的角色靠拢。然而&#xff0c;美国计算机科学家Stephen Wolfram在一系列讲座和文章中提出了反思&#xff1a;AI真的能…

网站localhost和127.0.0.1可以访问,本地ip不可访问解决方案

部署了一个网站, 使用localhost和127.0.0.1加端口号可以访问, 但是使用本机的ip地址加端口号却不行. 原因可能有多种. 可能的原因: 1 首先要确认是否localhost对应的端口是通的(直接网址访问), 以及你无法访问的那个本机ip是否正确(使用ping测试)&#xff1b; 2 检查本机的防火…

uniapp开发小程序使用vue的v-html解析富文本图片过大过宽显示超过屏幕解决办法

如果没有设置的话&#xff0c;就会导致图片溢出&#xff0c;过宽显示或者错位显示&#xff0c;显示效果非常的丑陋&#xff1a; 修改后显示的效果&#xff1a; 网上比较low的解决办法&#xff1a;网上各种解决方法核心思想就是在数据层把数据模板上的img数据加上style样式&…

【STM32 |新建一个工程】基于标准库(库函数)新建工程

目录 STM32开发方式 库函数文件夹 建工程步骤 库函数工程建立 建立工程总结 STM32开发方式 目前stm32的开发方式主要有基于寄存器的方式、基于标准库的方式&#xff08;库函数的方式&#xff09;、基于HAL库的方式基于库函数的方式是使用ST官方提供的封装好的函数&…

sscanf字符串解析

ATCIPSNTPTIME? //发生的指令 CIPSNTPTIME:Tue Oct 19 15:17:56 2021 //回复的数据 //接受数据缓存 char* recvStrBuf "CIPSNTPTIME:Tue Oct 19 15:17:56 2021"; char* weekStr; char* monthStr; int day,hour,minute,second,year; sscanf(recvStrBuf,""…

Emacs之取消sh-mode模式下:快捷键C-c C-c(一百三十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

第十三篇:智慧之网:深度探索关系型数据库的数学奥秘与实战技艺

智慧之网&#xff1a;深度探索关系型数据库的数学奥秘与实战技艺 1. 引言 1.1 数据时代的基石 在数字化的浪潮中&#xff0c;数据已成为新时代的石油&#xff0c;而关系型数据库则是这座数据矿藏的精炼厂。自E.F. Codd在1970年提出关系模型以来&#xff0c;关系型数据库以其坚…

VScode通过ssh远程连接服务器被拒绝:permission denied, please try again

使用场景&#xff1a; 使用windows系统下的vscode远程连接服务器的linux系统&#xff0c;终端提示permission denied, please try again,但是使用cmd是可以远程登录的。 解决办法&#xff1a; 前提条件windows端的vscode安装了ssh远程连接的相关插件Remote - SSH&#xff0c;…

C++ vs Rust vs Go 性能比较

本文对C、Rust和Go三种编程语言编写的gunzip程序进行了性能比较&#xff0c;通过基准测试试图尽可能公平的比较它们的性能。原文: Performance — C vs Rust vs Go 本文将通过一些基准测试&#xff0c;比较 C 和 Rust 以及 Go 编写的相同程序的性能。我们将尽最大努力将语言差异…

Vivado功耗之散热模型详解

目录 一、前言 二、热模型 三、结温计算 四、散热器计算 五、参考资料 一、前言 ​在功耗评估中&#xff0c;Vivado中report power流程以及XPE中都有关于environment的配置&#xff0c;该界面配置涉及到多个晦涩的概念&#xff0c;之前的文章中也对相关概念进行过翻译&…