当前位置: 首页 > news >正文

Python列表

使用场景:列表是用来存储多组数据的
列表是可变类型
列表支持切片

1.基本规则

1.列表使用[]来表示
2.初始化列表:list = []
3.列表可以一次性存储多个数据:[数据1,数据2,数据3,…]
4.列表中的每一项,都能是不同的数据类型。(包括列表)
示例:

#列表的元素多种多样(指类型)
test_list = [1,'a',[1,2],{"name":"刘备"},{2,3},(1,2,"李四")]
#列表的输出
names_list = ['刘备','曹操','孙权']
print(names_list[0])
print(names_list[1])
print(names_list[2])
print(names_list)

2.常用操作

2.1查找

2.1.1 下标查找
name_list=['tom','lily','rose']
print(name_list[0]) # tom
2.1.2 函数(方法)查找

index()::返回指定数据所在位置的下标
语法:列表序列.index(数据,开始位置的下标,结束位置的下标)
注意:如果查找的数据不存在则报错

name_list = ['tom','lily','rose']
print(name_list.index('tom')) # 0

count():统计指定数据在当前列表中出现的次数

name_list=['tom','lily','rose']
print(name_list.count('tom')) # 1

len():可以获取列表的长度,即列表中数据的个数

name_list=['tom','lily','rose']
print(len(name_list)) # 3
2.1.3 判断是否存在

in:判断指定的数据在某个列表序列,如果在返回True,否则返回False

name_list=['tom','lily','rose']
print('lily'in name_list) #True
print('yao' in name_list) #False

not in :判断指定的数据不在某个列表序列,如果不在返回True,否则返回False

name_list=['tom','lily','rose']
print('tom' not in name_list) # False
print('yaoyao' not in name_list) #True

2.2 增加

append():列表尾部追加数据
语法:列表序列.append(数据)

name=['tom','lily','rose']
name.append('xiaoming')
print(name)#['tom','lily','rose','xiaoming']

注意:如果append()追加的数据是一个序列,则追加整个序列到列表,整体新增一个元素。

name_list = ['tom','lily','rose']
name_list.append(['xiaoming','xiaohong'])
print(name_list)
# 结果:['tom', 'lily', 'rose', ['xiaoming', 'xiaohong']]

extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一加入列表中(与append对比)
语法:列表序列.extend(数据)

#单个数据,迭代进行插入
name_list1 = ['tom','lily','rose']
name_list1.extend('abc')
print(name_list1)#['tom', 'lily', 'rose', 'a', 'b', 'c']
#序列数据,迭代进行插入
name_list2 = ['tom','lily','rose']
name_list2.extend(['a','b','c'])
print(name_list2)#['tom', 'lily', 'rose', 'a', 'b', 'c']

insert(): 指定位置新增数据
语法:列表序列.insert(位置下标,数据)

name_list = ['tom','lily','rose']
name_list.insert(0,'yaoyao')
print(name_list)
# 结果:['yaoyao', 'tom', 'lily', 'rose']

2.3删除

del
语法:del 目标


#删除一个元素
name_list = ['tom','lily','rose']
del name_list[0]
print(name_list)#['lily','rose']
#删除整个列表
del name_list
print(name_list)#NameError: name 'name_list' is not defined,因为删除了,print找不到name_list,所以报错

remove()

name_list = ['tom','lily','rose']
del_name = name_list.remove("tom") #
print(name_list)#['lily','rose']

pop():删除指定下标的数据(默认为最后一个),并返回该数据
语法:列表.pop(index)

name_list = ['tom','lily','rose']
del_name = name_list.pop(0) # 返回的是被删除的元素
print(del_name)   #tom
print(name_list)#['lily', 'rose']
# 不加索引,默认删除最后一个元素
name_list.pop()
print(name_list)#['lily']

clear():清空列表

name_list = ['tom','lily','rose']
name_list.clear() #清除列表里面的所有元素
print(name_list)# 结果是[]

2.4修改

修改指定下标数据:

name_list = ['tom','lily','rose']
name_list[0]='yaoyao'
name_list[2]="yaoyao"
print(name_list)#['yaoyao', 'lily', 'yaoyao']

返回数据在列表中的索引:

name_list = ['tom','lily','rose']
print(name_list.index("tom"))#0

逆转:reverse()

name_list=['tom','lily','rose']
name_list.reverse()
print(name_list)# ['rose', 'lily', 'tom']

排序:sort()
语法:列表.sort(key=None,reverse=False)
注意:reverse表示排序规则,reverse=True 降序,reverse=False 升序(默认)

name_list=[1,7,3,2,8]
name_list.sort()
print(name_list)# [1, 2, 3, 7, 8]

连接:join关键字
语法:分隔符.join(元组和列表) -----把列表和元组转换成字符串
注意:只能够用在存储字符串类型的列表或元组

name_list = ['tom','lily','rose']
print(' '.join(name_list))#tom lily rose
print('*'.join(name_list))#tom*lily*rose

3.列表嵌套

应用场景:要存储高三三个班级的学生名字,每个班级的学生名字为一个列表

name_list = [['xiaoming','xiaohong','xiaoli'],['tom','lily','rose'],['小李','小
杨','小张']]
#如何查找到数据"小李"
print(name_list[2][0])

4.列表推导式

作用:列表推导式:使用一行代码简单快速的创建一个列表。

# 生成一个列表
num_list = [value for value in range(1, 4)]#value 就是往列表中插入的值,可对value 再进行操作
print(num_list)#[1,2,3]
# 对列表中的数据进行过滤
data_list = [1, 9, 2, 10]
new_list = [value for value in data_list if value % 2 == 0]
print(new_list)#[2,10]
new_list2 = [str(value) for value in data_list if value % 2 == 0]
print(name_list2)#['2','10']
print(' '.join(name_list2))
# 字符串转列表,每个元素复制成两份
info_str = "abc"
new_str = [value * 2 for value in info_str]
print(new_str)#['aa', 'bb', 'cc']

相关文章:

Python列表

使用场景:列表是用来存储多组数据的 列表是可变类型 列表支持切片 1.基本规则 1.列表使用[]来表示 2.初始化列表:list [] 3.列表可以一次性存储多个数据:[数据1,数据2,数据3,…] 4.列表中的每一项&#…...

谈谈系列之金融直播展业畅想

近些年直播异常火热,对于各大中小型基金证券公司,也纷纷引入直播作为新型展业渠道。在这其中有一部分直接采用第三方云平台,也有少部分选择自建直播平台。当然自建直播平台也不是纯自研,大抵都是外购第三方厂商整体解决方案&#…...

【C 数据结构】双向链表

文章目录 【 1. 基本原理 】【 2. 双向链表的 创建 】实例 - 输出双向链表 【 3. 双向链表 添加节点 】【 4. 双向链表 删除节点 】【 5. 双向链表查找节点 】【 7. 双向链表更改节点 】【 8. 实例 - 双向链表的 增删查改 】 【 1. 基本原理 】 表中各节点中都只包含一个指针&…...

Leetcode刷题之消失的数字(C语言版)

Leetcode刷题之消失的数字(C语言版) 一、题目描述二、题目解析 一、题目描述 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作…...

LeetCode654:最大二叉树

题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 …...

AI禁区徘徊监测识别摄像机

AI禁区徘徊监测识别摄像机是一种基于人工智能技术的智能监控设备,用于监测禁止进入或逗留的区域。这种摄像机通过高清摄像头实时捕捉场景图像,利用AI算法对人员徘徊行为进行识别和监测,有助于提高安全防范水平,减少潜在的安全风险…...

【学习】什么是信创适配性测试?信创适配性测试的重要性有哪些?

随着信息技术的快速发展和广泛应用,信息技术应用创新(信创)已成为推动我国产业升级和经济发展的重要力量。在信创领域,适配性测试至关重要,它不仅关系到信创产品的质量和性能,还直接影响到用户的使用体验和…...

linux 配置服务开机启动

一、Centos 中配置进程开启启动 1、使用 systemd 服务: (1)创建一个名为 myapp.service 的服务文件: [Unit] DescriptionMyApp #描述 After #描述服务类别 [Service] Typefork…...

React中State管理的4 个关键解决方案

在 React 应用开发中,状态(state)管理是非常重要的一部分。合理地管理状态可以确保组件的行为正确,提高应用的可维护性和性能。然而,在实际使用 React 的 state 时,开发者常常会遇到一些常见的问题和陷阱。 本文将从解决问题的角度,总结 React 中 state 管理的4个关键技巧: 使…...

Testng测试框架(6)--@Factory动态地创建测试类的实例

工厂允许您动态地创建测试。例如,假设您想创建一个测试方法,该方法将多次访问网站上的某个页面,并且您希望使用不同的值来调用它。 public class TestWebServer {Test(parameters { "number-of-times" })public void accessPage(…...

Kubernetes(K8s)运维实战:案例解析与代码实践

一、引言 随着容器技术的普及,Kubernetes(K8s)作为容器编排领域的领军者,已成为企业运维不可或缺的工具。K8s以其强大的自动化管理、可扩展性和高可用性等特点,为运维人员提供了便捷、高效的管理手段。本文将结合具体案…...

nginx反向代理配置详解

首先配置端口 server {listen 3080; server_name 172.20.109.27 localhost;}为了解决刷新后显示404的问题,增加配置如下: location / {root html;index index.html index.htm;try_files $uri $uri.html $uri/ mongrel;}location mongrel {# ip…...

【LeetCode】单调栈类题目详解

所有题目均来自于LeetCode,刷题代码使用的Python3版本 单调栈 通常针对一维数组的问题,如果需要寻找一个元素右边或者左边第一个比自己大或者小的元素的位置,就可以使用单调栈,时间复杂度为O(n) 单调栈的本质是空间换时间&#…...

Python上解决TypeError: not all arguments converted during string formatting错误

目录 背景尝试1: pymysql模块的escape_string方法尝试2: 修改pandas.read_excel引擎尝试3: 回退xlrd版本总结 背景 在Linux上部署的时候, 使用pandas模块读取Excel, 然后pymysql模块入库, 结果发生了错误 Traceback (most recent call last):File "/usr/local/lib64/pyth…...

ASUS华硕ROG幻16Air笔记本电脑GU605M原装出厂Win11系统工厂包下载,带有ASUSRecovery一键重置还原

适用型号:GU605MI、GU605MY、GU605MZ、GU605MV、GU605MU 链接:https://pan.baidu.com/s/1YBmZZbTKpIu883jYCS9KfA?pwd9jd4 提取码:9jd4 华硕原厂Windows11系统带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性联机支持…...

【OpenVINO™】使用 OpenVINO™ C# API 部署 YOLOv9 目标检测和实例分割模型(上篇)

YOLOv9模型是YOLO系列实时目标检测算法中的最新版本,代表着该系列在准确性、速度和效率方面的又一次重大飞跃。它通过引入先进的深度学习技术和创新的架构设计,如通用ELAN(GELAN)和可编程梯度信息(PGI)&…...

代码随想录——二分查找(一)

模版 func BinarySearch(nums *int,target int){l,r:0,len(nums)-1for l<r{mid:l(r-l)/2if nums[mid]target{return mid}else if nums[mid]<target{lmid1}else{rmid-1}}return -1 }特点 查找条件可以在不与元素的两侧进行比较的情况下确定&#xff08;或使用它周围的特…...

【NLP】多标签分类【下】

文章目录 简介个人博客与相关链接1 实验数据与任务说明2 模型介绍2.1 TransformerTransformer能做什么&#xff1f; 2.2 Hugging FaceHugging Face的Transformers库社区支持和资源预训练模型的应用 2.3 T5模型&#xff08;Text-To-Text Transfer Transformer&#xff09;T5的核…...

HWOD:密码强度等级

一、知识点 回车键的ASCII码是10 如果使用EOF&#xff0c;有些用例不通过 二、题目 1、描述 密码按如下规则进行计分&#xff0c;并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0…...

期货学习笔记-MACD指标学习2

MACD底背离把握买入多单的技巧 底背离的概念及特征 底背离指的是MACD指标与价格低点之间的对比关系&#xff0c;这里需要明白的是MACD指标的涨跌动能和价格形态衰竭形态之间的关系&#xff0c;如果市场价格创新低而出现衰竭形态同时也有底背离形态的出现&#xff0c;此时下跌…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展&#xff0c;养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下&#xff0c;而且难以实现精准监控和管理。为了提升尾水处理的效果和效率&#xff0c;同时降低人力成本&#xff0c;某大型水产养殖企业决定…...