python中的列表及操作

1、列表类型的定义
  • 列表是序列类型的一种扩展,创建后可以随意被修改

  • 使用方括号[]或list()创建,元素间用逗号,分隔

  • 列表中各元素类型可以不同,无长度限制

  • 定义示例:

    ls = [88, 'cat', 'dog']
    

2、列表的操作函数和方法

函数或方法描述
ls[i] = x替换列表ls中序号为i的元素为x
ls[i:j:k] = lt用列表lt替换ls切片后对应元素子列表
del ls[i]删除列表ls中序号为的i元素
del ls[i:j:k]删除列表ls中第i到第j以k为步长的元素
ls += ls1更新列表ls,将列表ls1中的元素增加到列表ls中
ls * n更新列表ls,将其元素重复n次
ls.append(x)在列表ls最后增加一个元素
ls.clear()删除列表ls中所有元素
ls.copy()生成一个新列表,将ls中的所有元素赋值给新列表
ls.insert(i,x)在列表ls的序号为i的位置增加元素x
ls.pop(i)将列表ls中序号为i的元素取出并删除该元素
ls.remove(x)删除列表ls中第一个出现的为x的元素
ls.reveser()将列表ls中的元素反转
ls.sort(reverse=True)列表排序
sorted(ls)列表排序
3、列表操作示例:
  • 定义空列表

    ls = []
    
  • 向列表ls中增加6个元素

    ls += [1, 2, 3, 4, 5, 6]
    
  • 修改ls中的第3个元素

    ls[2] = 'a'
    
  • 在ls的第2个位置增加一个元素

    ls.insert(2, 1.5)
    
  • 删除ls中第一个位置的元素

    del ls[1]
    
  • 删除ls中1-3位置的元素

    del ls[1:4]
    
  • 判断ls中是否包含数字0

    0 in ls
    
  • 向ls中新增数字0

    ls.append(0)
    
  • 返回数字0在ls中的索引

    ls.index(0)
    
  • 返回ls的长度

    len(ls)
    
  • 返回ls中最大的元素

    max(ls)
    
  • 清空ls

    ls.clear()
    
4、列表元素的遍历
car_brand = ['byd', '鸿蒙智行', '长城', '吉利', '红旗']# 通过元素的方式遍历
for brand in car_brand:print(brand)# 通过下标遍历
for i in rang(len(car_brand)):print(car_brand[i])
5、列表遍历删除漏删问题
  • 问题原因:

    当在循环中删除列表中的元素时,由于列表的长度在每次删除操作后都会减少,这会导致循环中的索引与列表中的实际元素不匹配。例如,如果你从列表的开头开始删除元素,那么每次删除后,下一个元素的索引会向前移动一位,但循环的索引不会自动调整,导致某些元素被跳过。

  • 解决方案

    – 方案一:正向遍历时使用continue

    ls = ['python', 'aa', 'ab', 'is', 'ac', 'everywhere']
    # 删除ls中含'a'的元素
    i, l = 0, len(ls)
    while i < l:for i in range(l):if 'a' in ls[i]:del ls[i]				# del后,列表长度变短了,元素左移,原来为序号2的元素下标变成了1l -= 1continue                # continue:跳过后续的i+=1语句,继续执行for循环,且i不变i += 1
    

    – 方案二:倒序遍历

    ls = ['python', 'aa', 'ab', 'is', 'ac', 'everywhere']
    # 删除ls中含'a'的元素
    for i in range(len(ls) - 1, -1, -1):print(len(ls) - 1, i)if 'a' in ls[i]:del ls[i]
    print(ls)'''
    5 5
    5 4
    4 3
    4 2
    3 1
    2 0
    ['python', 'is', 'everywhere']
    '''
    

    range(len(my_list) - 1, -1, -1)生成一个从列表末尾到开始的索引序列,步长为-1,表示每次向前移动一个索引。倒序遍历的主要优势在于它避免了在遍历过程中因删除元素而导致的索引错位问题,从而确保所有需要处理的元素都能被正确处理。

6、列表的排序
import random# 生成10个随机数的列表
ran_list = []
i = 1
while i <= 10:ran = random.randint(1, 20)if ran not in ran_list:ran_list.append(ran)i += 1
print(ran_list)# 求列表中的最大值
max_degit = ran_list[1]
for ran in ran_list:if max_degit < ran:max_degit = ran
print(max_degit)# 冒泡排序
for k in range(len(ran_list)-2):print(k)for j in range(len(ran_list)-1-k):if ran_list[j] < ran_list[j+1]:ran_list[j], ran_list[j+1] = ran_list[j+1], ran_list[j]print(ran_list)# 选择排序
for j in range(len(ran_list)):print(j)for k in range(j, len(ran_list)):if ran_list[j] < ran_list[k]:ran_list[j], ran_list[k] = ran_list[k], ran_list[j]print(ran_list)
7、list()将指定内容转成列表
  • list()中只能放可迭代的内容

  • iterable:可迭代的,可以用for…in循环的就是可迭代对象

    s = 'abc'
    print(list(s))		# ['a', 'b', 'c']print(range(1, 10, 2))		# range(1, 10, 2)
    print(list(range(1, 10, 2)))	# [1, 3, 5, 7, 9]print(list(5))		# TypeError: 'int' object is not iterable
    

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

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

相关文章

银河麒麟操作系统安装达梦数据库(超详细)

目录 引言1. 前期准备1.1 安装麒麟系统1.2 下载达梦数据库安装包&#xff08;DM8&#xff09;1.3 上传安装包到麒麟系统1.4 挂载安装包&#xff08;iso&#xff09;文件1.5 配置安装用户和组1.6 创建安装路径及修改权限1.7 设置临时安装目录 2. 安装达梦数据库&#xff08;DM8&…

Linux-frp_0.61.1内网穿透的配置和使用

下载frp frp官网 https://gofrp.org/zh-cn/docs/setup/ frp安装包下载地址 https://github.com/fatedier/frp/releases?page1 下载之后在服务器上 解压 tar -zxvf frp_0.61.1_linux_amd64.tar.gztar&#xff1a;一个用于压缩和解压缩的工具。-z&#xff1a;表示使用 gzi…

【操作系统】如何创建一个守护进程

守护进程&#xff08;Daemon&#xff09;是一类在后台运行的特殊进程&#xff0c;它们通常不与任何终端或用户直接交互&#xff0c;而是执行特定的系统任务或等待系统或网络事件的发生。守护进程是操作系统中不可或缺的一部分&#xff0c;它们负责执行各种后台任务&#xff0c;…

Unity开发AR之Vuforia-MultiTarget笔记

前言 在增强现实(AR)技术蓬勃发展的今天,越来越多的开发者开始探索如何将AR应用于各种场景中。Vuforia作为一个领先的AR开发平台,为开发者提供了强大的工具和功能,使得创建AR体验变得更加简单和直观。本文将为您介绍Vuforia的基本概念、特点,以及如何配置和使用MultiTar…

python|利用ffmpeg按顺序合并指定目录内的ts文件

前言&#xff1a; 有的时候我们利用爬虫爬取到的ts文件很多&#xff0c;但ts文件只是视频片段&#xff0c;并且这些视频片段是需要按照一定的顺序合并的&#xff0c;通常ts文件合并输出格式为mp4格式 因此&#xff0c;本文介绍利用python&#xff0c;调用ffmpeg来批量的按自己…

【Python】 基于Python实现日志聚合与分析工具:利用Logstash与Fluentd构建高效分布式日志系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在分布式系统中,日志数据的生成速度和数量呈指数级增长,传统的日志管理方式已无法满足现代企业对实时性、可扩展性和高效性的需求。本文深…

04.HTTPS的实现原理-HTTPS的混合加密流程

04.HTTPS的实现原理-HTTPS的混合加密流程 简介1. 非对称加密与对称加密2. 非对称加密的工作流程3. 对称加密的工作流程4. HTTPS的加密流程总结 简介 主要讲述了HTTPS的加密流程&#xff0c;包括非对称加密和对称加密两个阶段。首先&#xff0c;客户端向服务器发送请求&#xf…

【从零开始入门unity游戏开发之——C#篇34】C#匿名函数(delegate )和Lambda表达式

文章目录 一、匿名函数&#xff08;delegate &#xff09;1、什么是匿名函数&#xff1f;2、匿名函数的基本语法2.1 语法2.2 **没有参数的匿名函数&#xff1a;**2.3 **有参数的匿名函数&#xff1a;**2.4 **有返回值的匿名函数&#xff1a;** 3、匿名函数的使用示例3.1 作为参…

IDEA开发Java应用的初始化设置

一、插件安装 如下图所示&#xff1a; 1、Alibaba Java Coding Guidelines 2.1.1 阿里开发者规范&#xff0c;可以帮忙本地自动扫描出不符合开发者规范的代码&#xff0c;甚至是代码漏洞提示。 右击项目&#xff0c;选择《编码规约扫描》&#xff0c;可以进行本地代码规范扫…

vue2/3,Spring Boot以及生产环境跨域解决方案

vue2和vue3跨域解决方案 Vue 2 (基于 Webpack) 的跨域解决方案 1. 创建或编辑 vue.config.js 文件 Vue CLI为Webpack项目提供了简单的代理配置方式。你可以通过创建或编辑项目的根目录下的 vue.config.js 文件来设置开发服务器的代理规则&#xff1a; // vue.config.js mod…

java相关学习文档或网站整理

1. mybatis MyBatis 3 | Introduction – mybatis 中文版&#xff1a; MyBatis 3 | 简介 – mybatis github版&#xff1a; Releases mybatis/mybatis-3 2. maven仓库 https://mvnrepository.com/

代码模拟打字机(python)

回车符\r打印稿纸&#xff0c;time.sleep模拟停顿效果&#xff0c;一顿一顿的打字机效果就此呈现。 (笔记模板由python脚本于2024年12月27日 19:34:37创建&#xff0c;本篇笔记适合有基础编程能力的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.…

让 AMD GPU 在大语言模型推理中崭露头角:机遇与挑战

在当今科技飞速发展的时代&#xff0c;大语言模型&#xff08;LLM&#xff09;的兴起彻底改变了人工智能领域的格局。从智能客服到文本生成&#xff0c;从知识问答到代码编写辅助&#xff0c;大语言模型的应用无处不在&#xff0c;深刻影响着我们的生活和工作。然而&#xff0c…

LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读

LLMs之o3&#xff1a;《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读 导读&#xff1a;2024年12月&#xff0c;这篇论文提出了一种名为“审慎式对齐 (Deliberative Alignment)”的新方法&#xff0c;旨在提高大型语言模型 (LLM) 的安全性。论…

音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现

音视频入门基础&#xff1a;MPEG2-TS专题系列文章&#xff1a; 音视频入门基础&#xff1a;MPEG2-TS专题&#xff08;1&#xff09;——MPEG2-TS官方文档下载 音视频入门基础&#xff1a;MPEG2-TS专题&#xff08;2&#xff09;——使用FFmpeg命令生成ts文件 音视频入门基础…

微信流量主挑战:用户破16!新增文档转换(新纪元3)

朋友们&#xff0c;报告好消息&#xff01;我的小程序用户数量已经涨到16个了&#xff01;没错&#xff0c;真没拉朋友圈亲戚好友来撑场子&#xff0c;全靠实力&#xff08;和一点点运气&#xff09;吸引了16位陌生小伙伴光临&#xff01;这波进步&#xff0c;连我自己都感动了…

顶顶通呼叫中心中间件mod_cti模块安全增强,预防盗打风险(mod_cti基于FreeSWITCH)

文章目录 前言联系我们mod_cti版本支持安全加强说明 前言 FreeSWITCH暴露在公网最大的风险就是被不法之人盗打 出现盗打的主要原因以下几点&#xff1a; 分机密码太简单或者密码泄露了拨号方案配置不合理sofia配置错误 所以我们给顶顶通呼叫中心中间件添加了安全加强功能&am…

请分别从CPU、内 存、IO、⽹络的⻆度判断Linux的瓶颈?

在 Linux 下分析程序的性能瓶颈&#xff0c;需要结合多种⼯具和⽅法来从不同的⻆度观察系统的⾏为。以下是从 CPU、内存、I/O 和⽹络四个主要⽅⾯进⾏性能瓶颈分析的⽅法&#xff1a; 1. CPU top/htop&#xff1a;这些⼯具可以显示系统中每个进程的 CPU 利⽤率。如果你看到某…

ADB 上传文件并使用脚本监控上传百分比

有个需求&#xff0c;需要测试 emmc的外部连续写入性能&#xff0c;使用 ADB 上传一个巨大的文件。并且在上传到一定值时进行干预。 因此但是 adb push 命令本身会 block 运行并且不返回进度&#xff0c;因此需要一个额外的监控脚本。 上传脚本&#xff1a; echo off setloc…

【Halcon】例程讲解:基于形状匹配与OCR的多图像处理(附图像、程序下载链接)

1. 开发需求 在参考图像中定义感兴趣区域&#xff08;ROI&#xff09;&#xff0c;用于形状匹配和文本识别。通过形状匹配找到图像中的目标对象位置。对齐多幅输入图像&#xff0c;使其与参考图像保持一致。在对齐后的图像上进行OCR识别&#xff0c;提取文本和数字信息。以循环…