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

4.9 Python 列表

4.9 列表

Python数据类型第1种:字符串(str),用引号括起来的内容。
Python数据类型第2种:整数(int)。
Python数据类型第3种:浮点数(float),含有小数点的数。
Python数据类型第4种:列表(list),用方括号[ ]表示。

4.9.1 列表的概念

变量可以存储一个元素,列表可以理解成比变量更大的容器,可以存储多个元素。
列表是用来存储一组有序数据元素的数据结构。
列表用[ ]表示,元素之间用逗号分隔。
列表是可变的数据类型。可变是指可以增、删、改元素。
注意:list 作为 Python 的关键字和内置函数,变量名不建议命名为 list。
列表语法如下图所示:

在这里插入图片描述

4.9.2 新建一个列表

新建一个空列表

当方括号内没有元素时,列表就是一个空列表。

# 新建一个空列表
num_list = [ ]

新建一个int 列表

当方括号内的元素全部为int 类型时,这个列表就是int 类型列表。

# 新建一个int 列表
int_list = [1, 2, 3, 4]

# 查看列表
int_list 
[1, 2, 3, 4]

int_list 是我给列表起的变量名;
列表用方括号表示:[ ]
1 2 3 4是列表的元素,上述列表有4个元素;
元素之间用英文逗号,分隔;
标点符号必须为英文状态下输入,中文下会报错。

新建一个str列表

当方括号内的元素全部为str 类型时,这个列表就是str 类型列表。

#新建一个str 列表
str_list = ['张三', '李四' ,'王五']

# 查看列表
str_list 
['张三', '李四', '王五']

‘张三’, ‘李四’ ,'王五’是列表的元素,元素类型为字符串,字符串必须加引号。

新建一个int+str列表

当方括号内的元素既有int类型,又有str类型,这个列表就是int+str类型。

# 新建一个int+str列表
int_str_list = ['张三', 3000 ,'李四', 4000 ,'王五', 5000]

# 查看int+str列表
int_str_list
['张三', 3000, '李四', 4000, '王五', 5000]

4.9.3 列表的复制

列表的复制和字符串的复制一样,也用*操作符。
列表的复制指的是复制列表的元素,列表还是一个列表,只是元素增加了。

# 新建一个int 列表
int_list = [1, 2, 3, 4]

# 复制列表
int_list*3

[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

int_list 列表本来有4个元素,复制3次后列表有12个元素。

4.9.4 列表的合并

列表的合并是将现有的列表元素内容合并在一起,有两种方法:

方法一:利用+操作符;

#新建3个列表
list_1 = [ '张三' , 3000 ]
list_2 = [ '李四' , 4000 ]
list_3 = [ '王五' , 5000 ]

# 列表合并
list_1+list_2+list_3
['张三', 3000, '李四', 4000, '王五', 5000]

方法二:利用extend( ) 函数。

extend[ɪkˈstend]:扩展。
语法:A.extend(B) 将列表B合并到列表A中。

#新建3个列表
list_1 = [ '张三' , 3000 ]
list_2 = [ '李四' , 4000 ]
list_3 = [ '王五' , 5000 ]

# 将列表2的元素合并到列表1中
list_1.extend(list_2)

# 查看第一次合并后的列表
list_1
['张三', 3000, '李四', 4000]
# 将列表3的元素合并到列表1中
list_1.extend(list_3)

# 查看第二次合并后的列表
list_1
['张三', 3000, '李四', 4000, '王五', 5000, '王五', 5000]

4.9.5 向列表中插入新元素

列表是可变的,可以向列表中增加新元素。主要有两种方法:

方法一:利用append( ) 函数

append( ) 函数是指在列表末尾插入新的数据元素。
语法:列表.append(要增加的元素)
append[əˈpend]:附加。

# 新建一个列表
name_list = ['张三','李四']

# 在列表末尾增加一个元素王五
name_list.append('王五')

# 查看增加元素后的列表
name_list
['张三', '李四', '王五']

方法二:利用insert( ) 函数

insert( ) 函数是指在列表的指定位置插入新的数据元素。
语法:列表.insert(索引,要增加的元素)
insert [ɪnˈsɜːt]:插入。

# 新建一个列表
str_list = ['张三', '李四' ,'王五']

# 在张三后增加元素3000
str_list.insert(1,'白敬亭')

# 查看新的列表
str_list
['张三', '白敬亭', '李四', '王五']

insert函数括号中的第一个参数为增加元素的索引;
在张三后增加元素白敬亭,张三的索引为[0],白敬亭在列表的索引为[1],因此insert 函数的第一个参数为1。

我们可以把列表理解成一个酒店,酒店的每一个房间都有编号,只是这个酒店的房间编号是从0开始的,张三住的是第一间房,编号为0;白敬亭要住第二间房,第二间房的编号为1。

在这里插入图片描述

4.9.6 统计列表元素出现的次数

利用count函数可以统计某个元素在列表中出现的次数。
语法:列表.count(要统计的元素)
count [kaʊnt]:计数。

例如:全校成绩排名前5的的5个学生对应的班级组成一个列表,查看一下你所在的一班有几个人在这个列表中。

# 新建一个列表
class_list = ['一班', '三班', '二班','一班', '一班']

# 查看一班出现的次数
class_list.count('一班')
3

结果表示一班在列表中出现了3次。

4.9.7 查看列表元素的索引

语法:列表.index(元素)
index [ˈɪndeks]:索引。
查看元素出现的位置,就是看该元素位于列表中的哪里,即查看索引。
已知期末考试前5的同学是按降序排列的,查看一下王五排第几名。

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 查看王五的索引
name_list.index('王五')
2

输出结果为2,王五在列表中的索引为2,则他在班里排第3名。

4.9.8 查看列表元素

查看列表元素的方法和查看字符索引是一样的,有普通索引和切片索引两种方法。

方法一:普通索引

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 查看第一位元素
name_list[0]
'张三'

索引[0]表示列表的第一位。

方法二:切片索引

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 查看第2位至第5位,不含第5位。
name_list[1:4]
['李四', '王五', '赵六']

第2位索引为[1],第4位索引为[4];
切片含前不含后,因此这次的切片为[1:4]

4.9.9 删除列表元素

语法一:列表.pop(索引)
语法二:列表.remove(要删除的元素)
remove [rɪˈmuːv]:去掉、废除。

语法一:列表.pop(索引)

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 删除李四
name_list.pop(1)

# 查看删除后的列表
name_list
['张三', '王五', '赵六', '孙七']

李四的索引为[1],因此函数pop 括号内为1;
易错:初学者容易把pop(1)写出pop[1];
索引在取元素时用方括号[ ]表示;但函数后都紧跟英文小括号( )

语法二:列表.remove(要删除的元素)

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 删除李四
name_list.remove('李四')

# 查看删除后的列表
name_list
['张三', '王五', '赵六', '孙七']

4.9.10 修改列表元素

语法:列表[索引]=新的元素

# 新建列表
name_list = ['张三', '李四' ,'王五','赵六','孙七']

# 将李四换成白敬亭
name_list[1]='白敬亭'

# 查看修改后的列表
name_list
['张三', '白敬亭', '王五', '赵六', '孙七']

李四的索引为[1],等号右边为要替换的元素白敬亭。

4.9.11 对列表中的元素进行排序

语法:列表.sort( )
sort 默认采取升序排序。
sort [sɔːt]:分类。

整数列表排序

# 新建一个整数列表
number_list = [1,4,9,5]

# 对列表元素进行排序
number_list.sort( )

# 查看排序后的列表
number_list
[1, 4, 5, 9]

英文字符排序

# 新建一个字符串列表
word_list = [    'andy','food','car','boy']

# 对列表元素进行排序
word_list.sort( )

# 查看排序后的列表
word_list
['andy', 'boy', 'car', 'food']

4.9.12 总结

在这里插入图片描述

课后练习

补全下面的空白的代码。

# 新建3个列表
actor_list = [ '白敬亭','张杰','何炅']
occupation_list = ['男主角','歌手','朋友','主持人']
other_list = ['开端','快乐大本营' ]
    
# 输出白敬亭是开端的男主角

# 输出何炅是快乐大本营的主持人

# 在actor_list 列表中末尾增加元素井柏然


# 在actor_list 列表中张杰后增加元素谢娜


# 输出最终的actor_list

相关文章:

  • 4.10 Python 元组
  • clustree确定多少个cluster
  • 4.11 python 字典
  • 4.12 input( ) 输入函数 及注释
  • 4.13 Python 索引与切片
  • 4.14 python 字符串的拼接及格式化(.format)
  • ggplot画 ump 和tsne 从seurat中使用addmodule得到的umap 使用ggplot画图
  • 5.1 Python 算术运算符
  • ggplot画梯度颜色图 不同颜色 对seurat的细胞类型进行inflammatory 炎症打分 addmodule
  • cell annotation细胞注释 给已经做成seurat对象的细胞统一改换名字 换标签 加标签
  • 5.2 Python 赋值运算符
  • 从pdf中提取文本 数据清洗
  • 5.3 Python 比较运算符
  • seurat的 addmodule循环画图 等同于基因的叠加图 识别细胞类型 空转与单细胞得到的marker基因联合
  • 5.4 Python 逻辑运算符
  • 2017年终总结、随想
  • Android 架构优化~MVP 架构改造
  • Asm.js的简单介绍
  • idea + plantuml 画流程图
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux下的乱码问题
  • mysql常用命令汇总
  • Spring框架之我见(三)——IOC、AOP
  • vue.js框架原理浅析
  • vuex 笔记整理
  • 详解NodeJs流之一
  • 栈实现走出迷宫(C++)
  • 终端用户监控:真实用户监控还是模拟监控?
  • raise 与 raise ... from 的区别
  • 选择阿里云数据库HBase版十大理由
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #pragma预处理命令
  • (13):Silverlight 2 数据与通信之WebRequest
  • (13)Hive调优——动态分区导致的小文件问题
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)iOS字体
  • (转)Scala的“=”符号简介
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • []指针
  • [AIGC codze] Kafka 的 rebalance 机制
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [daily][archlinux][game] 几个linux下还不错的游戏
  • [dfs] 图案计数
  • [JavaWeb]—前端篇
  • [leetcode]_Symmetric Tree
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器