python列表基础知识

news2025/3/17 4:58:44

列表

创建列表

1.列表的定义:可变的,有序的数据结构,可以随时添加或者删除其中的元素

2.基本语法:字面量【元素1,元素2,元素3】==使用[]创建列表

定义变量:变量名称【元素1,元素2,元素3】

定义空变量:变量名称:【】;变量名称=list【】

列表里的每一个数据称之为数据,以[ ]作为标识,列表内每一个元素之间用逗号隔开,甚至元素本身也可以是列表,这样就够成了嵌套列表,列表可以存储多种数据

name_list1=[[‘red’,’green’],[‘blue’,’white’],name1_list]

列表可以将元素修改数据类型

3.使用list()函数,创建(转换为)列表:

this_list = list(('apple', 'banana', 'cherry'))

注意:在使用 list() 函数创建列表时,一定要注意双括号

##访问列表

列表的下标索引:

从前往后从0开始,依次递增;也可以反向索引,从后往前-1,-2,-3

name_list=[‘Tom’,’Lily’,’Rose’]

print(name_list[0])------Tom

print(name_list[-2])----Lily

如果列表是嵌套的列表,同样支持下标索引

my_list=[[1,2,3],[44,5,6]]

print(my_list2[1][1])第一个下标是确定是列表[123],再根据第二个下标取出元素

取值的时候不能发生越界,否则会报错

列表切片

语法:list_name[start: end :step]

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']
print(list_name[1:5:2])
print(list_name[-6:-1:3])
>>>最后的结果是:['lgl', 'whl']
['wzq', 'whl']

while 循环

  • 元素访问方式 : 使用 下标索引 访问 列表中的元素 ;

  • 循环控制 :

    循环控制变量 :用于指示当前循环的 下标索引 ;

    循环条件 :设置为 循环控制变量 ( 下标索引 ) < 列表长度 ;

    • # 循环控制变量定义 对应下标索引
      index = 0
      while index < len(列表变量):
      	# 使用 下标索引 取出列表元素, 使用变量接收列表元素
      	变量 = 列表变量[index]
      	# 处理元素
      	# 下标索引变量 ( 循环控制变量 ) 自增 1 
      	index += 1
      
      

for循环遍历列表

fruit_list = ['apple', 'pear', 'cherry']
for i in fruit_list:
    print(i)
>>>apple
pear
cherry

检查项目是否存在

使用in关键字:

# 检查列表中是否存在'apple'
fruit_list = ['apple', 'pear', 'cherry']
print('apple' in fruit_list)
>>>结果:True

##更改列表值(追加,插入,删除)

(1)创建列表后,可以直接对列表中的数据项进行修改或者是更新

fruit_list = ['apple', 'pear', 'cherry']
fruit_list[2] = 'banana'
print(fruit_list)
>>>['apple', 'pear', 'banana']
内置方法

(2)列表.append(元素):向列表中追加一个元素

mylist=[“itCSDN”,”itlove”,”python”]
mylist.append(“CSDN程序员”)
print(f”列表再追加了元素之后,结果是:{mylist}”)
<<<最终的结果是:[‘itCSDN’,’itlove’,’python’,’CSDN程序员’]

(3)列表.insert(下标,元素)在指定下标处,插入指定的元素

语法:list.insert(position, element)

mylist=[“itCSDN”,”itlove”,”python”]
mylist.insert(1,“best”)
print(f”列表插入元素之后,结果是{mylist})
>>>最后的结果是:[“itCSDN”,“best”,”itlove”,”python”]

append()只能在末尾处添加元素或者是列表,insert()可以在任意位置添加元素或者是列表

(4)列表.extend(容器):将数据容器的内容依次取出,追加到列表尾部,依次添加(用列表扩展原来的列表)

mylis1t=[“itCSDN”,”itlove”,”python”]
mylist2=[1,2,3]
mylist1.extend(mylist2)
print(f”列表在追加了一个个新的列表之后,结果是{mylist1})
<<<最后的结果是[‘itCSDN’,’itlove’,’python’,1,2,3]
aver = ['A', 'B', 'C']
str1 = 'Hello'
aver.extend(str1)
print(aver)
>>>['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']

在 Python 中,list.extend() 方法用于将一个可迭代对象(如字符串、列表等)的所有元素添加到列表的末尾。当你将一个字符串传递给 extend() 方法时,字符串会被视为一个可迭代对象,因此它会将字符串中的每个字符作为单独的元素添加到列表中。

(5) del列表[下标]:删除列表指定下标元素或者删除整个列表

mylist=[“itCSDN”,”itlove”,”python”]
del mylist[2]
print(f”列表删除的元素之后的结果是:{mylist}”)
>>>最后的结果是[“itCSDN”,”itlove”]
list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']
del list_de
>>>再次打印输出会发生报错,表明该列表未被定义

(6)列表.pop(下标pos):删除列表指定下标元素,pos可选,指定需要删除元素 的位置,默认值为-1,即默认删除最后的元素

fruits = ['apple', 'banana', 'cherry']
fruits.pop()
print(fruits)
>>>['apple', 'banana']
fruits = ['apple', 'banana', 'cherry']
fruits.pop(1)
print(fruits)
>>>['apple', 'cherry']
mylist=[“itCSDN”,”itlove”,”python”]
element=list。pop(2)
print(f”通过pop的方法取出元素后的列表内容是:{mylist},取出的元素是:{element})
>>>最后的结果是:[“itCSDN”,”itlove”],取出的元素是python

pop与del的区别是不但能把元素删掉,还能把删除元素作为返回值得到

(7)列表.remove(元素):删除元素的第一个匹配项

mylist=[“itCSDN”,”itlove”,”python”]
mylist.remove(“itlove”)
print(f”通过remove方法移除元素之后,列表的结果是:{mylist}”)
>>>最后的结果是[“itCSDN”,”python”]

当被删除的元素在列表中存在多个时,默认删除首次出现的那个。

(8)列表.clear():清空列表

mylist=[“itCSDN”,”itlove”,”python”]
mylist.clear()
print(f”列表清空之后的结果是:{mylist}”)
>>>最后的结果是:[]

列表统计

(1)列表.count(元素):统计此元素在列表中出现的次数

mylist = ["itCSDN", "itlove", "itlove", "itlove", "python"]
count = mylist.count("itlove")
print(f"列表中itlove的数量是:{count}")
>>>最后的结果是3

(2)列表.index(元素):查找指定元素在列表的第一个下标,找不到就报错ValueError

mylist = ["itCSDN", "itlove", "python"]
index = mylist.index("itlove")
print(f"itlove在列表中的下标索引值是:{index}")
>>>最后的结果是1

当被搜索值在列表中多次出现时,仅返回首次出现的位置。

(3)len(列表):统计容器内有多少元素

mylist = ["itCSDN", "itlove", "python"] 
count = len(mylist)
print(f"列表的元素数量总共有:{count}个")
>>>最后的结果是3

多个列表

列表的连接(合并)/复制

与字符串一样,列表之间可以使用 + 号和 * 号实现元组的连接和复制,这就意味着它们可以生成一个新的列表。

1、+连接(合并)

x = [1, 2, 3]
y = [4, 5, 6]
print(x + y)
#[1, 2, 3, 4, 5, 6]

2、*复制

x = ['Hello']
print(x * 5)
#['Hello', 'Hello', 'Hello', 'Hello', 'Hello']
嵌套列表

使用嵌套列表即在列表里面创建其他列表。

x = [1, 2, 3]
y = ['a', 'b', 'c']
z = [x, y]
print(z)
1234
[[1, 2, 3], ['a', 'b', 'c']]

复制列表

list.copy()

fruits = ['apple', 'banana', 'cherry', 'orange']
x = fruits.copy()
print(x)
>>>['apple', 'banana', 'cherry', 'orange']
list1 = ['apple', 'banana', 'cherry']
list_2 = list(list1)

列表排序

(1)sort():用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

语法:list.sort(reverse=True|False, key=myFunc)

reverse:reverse=True是对列表进行降序排列,默认是reverse=False

key:指定排序标准的函数

words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
words.sort()
print(words)
>>>['Age', 'Gender', 'Height', 'Name', 'Weight']
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
words.sort(reverse=True)
print(words)
>>>['Weight', 'Name', 'Height', 'Gender', 'Age']

(2)颠倒列表顺序:list.reverse()

fruits = ['apple', 'banana', 'cherry']
fruits.reverse()
print(fruits)
>>>['cherry', 'banana', 'apple']
函数描述
print()打印输出
len()确定列表的长度
type()输出变量的类型
list()定义列表(转换为列表)
max()返回列表元素的最大值
min()返回列表的最小值
del删除整个列表或者通过索引删除列表中的某个元素
append(obj)在列表末尾添加一个元素
insert(index, obj)在指定的位置插入一个元素
extend(seq)将列表元素添加到当前列表的末尾
count(obj)统计某个元素在列表中出现的次数
index(obj)查找元素在列表的第一个匹配项的索引
sort( key=None, reverse=False)正向排序
copy()复制列表
reverse()逆向排序
pop([-1])删除列表的最后一个元素,并且返回该元素
remove(obj)移除列表中某个值的第一个匹配项
clear()清空列表

列表推导式

  • [表达式 for 变量 in 列表]:当变量遍历列表时,得到由对应的表达式结果组成的列表
  • [表达式 for 变量 in 列表 if 条件]:变量遍历列表,并且满足if后面的条件时,得到的是由表达式运算结果组成的列表
  • [表达式 for 变量 in 取值范围]:变量在取值范围内的遍历,然后通过表达式运算得到结果列表

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

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

相关文章

vue echarts封装使用

echarts 尺寸自动调节 resize.js 柱状图 components/dashboard/lineChart.vue <template><div :class"className" :style"{height:height,width:width}" /> </template><script> import echarts from echarts require(echarts/…

PTP协议赋能高精度时间同步网络

什么是PTP&#xff1f; PTP&#xff08;精确时间协议&#xff0c;Precision Time Protocol&#xff09; 是一种基于IEEE 1588标准的网络时间同步协议&#xff0c;旨在为分布式系统中的设备提供亚微秒级&#xff08;甚至纳秒级&#xff09;的高精度时钟同步。其核心目标是通过消…

使用WireShark解密https流量

概述 https协议是在http协议的基础上&#xff0c;使用TLS协议对http数据进行了加密&#xff0c;使得网络通信更加安全。一般情况下&#xff0c;使用WireShark抓取的https流量&#xff0c;数据都是加密的&#xff0c;无法直接查看。但是可以通过以下两种方法&#xff0c;解密抓…

MIDI,AI 3D场景生成技术

MIDI&#xff08;Multi-Instance Diffusion for Single Image to 3D Scene Generation&#xff09;是先进的3D场景生成技术&#xff0c;能在短时间内将单张图像转化为高保真度的3D场景。通过智能分割输入图像&#xff0c;识别出场景中的独立元素&#xff0c;再基于多实例扩散模…

allWebPlugin中间件自动适应Web系统多层iframe嵌套

应用背景 在Web项目集成开发中&#xff0c;经常遇到主页面嵌套iframe&#xff0c;甚至iframe内部页面嵌套iframe的应用场景。笔者在某大型招投标项目应用中就遇到这种应用。为了降低用户原有应用系统集成难度&#xff0c;实现无感集成&#xff0c;allWebPlugin中间件实现自动适…

Spring boot3-Http Interface: 声明式编程

来吧 1.首先引入pom.xml依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId> </dependency> 2.创建WebClientController控制器 import com.atguigu.boot3_07_http.serv…

【C++课程学习】:C++中的IO流(istream,iostream,fstream,sstream)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 C学习笔记&#xff1a; https://blog.csdn.net/djdjiejsn/category_12682189.html 前言&#xff1a; 在C语…

C语言实现冒泡排序,超详解

引言 用c语言实现使用冒泡排序 一、什么是冒泡排序 冒泡排序是一种简单的排序算法 基本原理 冒泡排序的基本思想是通过对数组中相邻元素的比较和交换&#xff0c;将最大&#xff08;或最小&#xff09;的元素逐步 “冒泡” 到数组的末尾&#xff08;或开头&#xff09;。它重…

Flutter——Android与Flutter混合开发详细教程

目录 1.创建FlutterModule项目&#xff0c;相当于Android项目里面的module库&#xff1b;2.或者编辑aar引用3.创建Android原生项目3.直接运行跑起来 1.创建FlutterModule项目&#xff0c;相当于Android项目里面的module库&#xff1b; 2.或者编辑aar引用 执行 flutter build a…

沐数科技数据开发岗笔试题2025

描述性统计 标准差 答案: A 解析: 标准差 衡量数据集中数值变化或离散程度的一种度量。它反映了数据集中的各个数值与数据集的平均值&#xff08;均值&#xff09;之间的偏离程度。标准差越大&#xff0c;表明数据的分布越分散&#xff1b;标准差越小&#xff0c;表明数据…

【eNSP实战】配置Easy IP

拓图 要求&#xff1a; 在AR1配置Easy IP策略实现内网可以访问Internet主机IP如图所示&#xff0c;这里不做展示 AR1接口配置 interface GigabitEthernet0/0/0ip address 192.168.0.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 10.0.1.1 255.255.255.0 …

让双向链表不在云里雾里

又来博客留下我的足迹了&#xff0c;哈哈哈&#xff0c;这次是对于双向链表的理解 目录 创建双向链表&#xff1a; 申请结点&#xff1a; 双向链表初始化&#xff1a; 双向链表插入结点&#xff1a; 双向链表删除结点&#xff1a; 双向链表的打印&#xff1a; 双向链表…

Oracle VirtualBox安装CentOS 7

Oracle VirtualBox虚拟机安装CentOS 7 该文章记录了在Windows上使用Oracle公司&#xff08;甲骨文&#xff09;的Virtual Box安装CentOS 7的过程中&#xff0c;所遇到到的一些困难和解决方案。 目录 Oracle VirtualBox虚拟机安装CentOS 7一、前期准备工作1.Virtual Box2.Cent…

linux docker 安装dify本地运行,及部署后运行出现502问题

1、git 拉取代码:git&#xff08; https://github.com/langgenius/dify.git&#xff09; git clone https://github.com/langgenius/dify.git2、进入项目目录 的docker下 cd docker3、复制一份本地运行的环境 cp .\.env.example .env查看本地的端口&#xff1a;80和443端口…

计算机网络——DHCP

一、什么是DHCP&#xff1f; DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09; 是一种网络管理协议&#xff0c;用于自动分配IP地址、子网掩码、网关、DNS等网络参数给客户端设备。它像一个“智能管家”&#xff0c;让设备无需手…

基于Java+MySQL实现的医药销售管理系统

医药销售管理系统 开发环境和开发工具 操作系统&#xff1a;win8.1 开发环境&#xff1a;Mysql、Web 开发工具&#xff1a;Workbench、Eclipse、JDBC 功能需求分析 员工有权查看、添加会员&#xff0c;查看、添加供应商&#xff0c;查询药品&#xff08;输入药品编号或名称…

【DeepSeek应用】DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI助理,无惧任务提交失败的压力。 一、环境准备 1. 安装依赖库 …

Vue 中的 MVVM、MVC 和 MVP 模式深度解析

文章目录 1. 模式概览与核心概念1.1 模式定义1.2 架构对比图 2. MVC 模式详解2.1 MVC 流程图2.2 Vue 中的 MVC 实现 3. MVP 模式详解3.1 MVP 流程图3.2 Vue 中的 MVP 实现 4. MVVM 模式详解4.1 MVVM 流程图4.2 Vue 中的 MVVM 实现 5. 模式对比分析5.1 职责对比5.2 通信方式对比…

基于DeepSeek×MWORKS 2025a的ROM Builder自动化降阶实战

一、引言 当前&#xff0c;工业仿真领域正经历着前所未有的「智能焦虑」——当自动驾驶算法已能理解城市路网&#xff0c;当大模型开始设计蛋白质结构&#xff0c;这个驱动大国重器研发的核心领域&#xff0c;却仍在与千万级方程组成的庞杂模型艰难博弈。传统仿真降阶如同在数…

入门基础项目-前端Vue_02

文章目录 1. 用户信息1.1 整体设计1.2 完整代码 User.vue1.2.1 数据加载1.2.2 表格 el-table1.2.2.1 多选1.2.2.2 自定义列的内容 Slot1.2.2.3 图片 el-image1.2.2.4 分页 el-pagination 1.2.3 编辑1.2.3.1 弹出框 el-dialog1.2.3.2 上传 el-upload 1.2.4 新增1.2.5 删除1.2.6 …