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

Python-列表详解(列表的创建、用法、遍历、注意事项、特点等)

本文有以下内容:

列表的创建
列表的下标索引注意事项
列表的访问
列表的增加元素
列表的删除元素
列表的任意删除元素
列表的查找元素
列表的查找元素位置
列表的插入任意位置
列表的遍历
列表的拼接方式
列表的切片操作以及注意事项

列表类似于其他语言的数组

列表和元组的区别:
列表可变
元组不能变

创建列表:
1、a = []表示一个空的列表
2、b = list()
3、可以存放无限制类型的变量

a = []b = list()c = [10,10.02,'zhangsan']​

下标访问运算符[](索引)
a[2]
下标是从0开始计数

使用下标访问列表元素和使用下标修改列表元素

#把第一个元素改为100
a = [1,2,3,4]
a[0] = 100


访问超出范围就会出异常

获取列表长度:使用len()函数
len()可以传字符串、列表、元组、自定义的类、字典、、、、(动态类型)

​a = [1,2,3,4,5]
b = len(a)#计算列表的长度并赋值给b​

下标可以写成负数,等价于len(a) - 1
len(a[-1]) = a(len(a) - 1) 
不是下标是1,而是a(len(a) - 1)的简写版本
也可以理解为倒数第一个元素,a[-2]就是倒数第二个元素1

切片操作:得到一个子列表
使用[beg:end]进行切片,表示一段区间
左闭右开[) 包含左边不包含右边

可以省略前后两边界(开始边界,结束边界)
[beg:] 从开始位置一直取到最后末尾
[:end]从列表的0开始,一直取到结束end的后边界
[:]从开始到结束,都省略
切片中的下标也可以写成负数。负数相当于是从后开始数,负数索引就是倒数元素

切片操作是一个高效的操作,只是取出一部分,并不涉及数据拷贝
即使是切片范围很大,依旧高效

切片可以指定步长,(range就可以设置步长)
a[::1]这个数字就是步长
步长的数值可以为-1,意为从后往前取(range步长也可以取负数)

当切片范围超出有效下标,不会出现异常!而是尽可能找到符合要求的元素(下标越界异常)

字符串也可以使用切片操作

a = [1,2,3,4,5]print(a[0:2])表示对列表a进行切片,从索引0开始到1(因为不包含右边)

#切片操作
a =[1,2,3,4]
print(a[1:3])a = [1,2,3,4,5,6,7,8,9,0]
print(a[::1])#步数取1
print(a[::2])#步数取2
print(a[:-1:2])#负数索引意思是倒数元素
print(a[::-1])
print(a[::-2])
print(a[::-3])

 

遍历:把列表中的每一个元素依次取出来,并进行某种操作(就像老师点名,要求不重不漏)

for elem in 可迭代对象(即可以一个一个拿出来表示):
    循环体

​
for elem in a:#elem表示元素​

列表新增元素
列表.append(新增内容)函数
需要搭配对象使用的函数(founction),叫做方法(meothd)
什么叫对象?
在Python中,对象可以视为”变量“

a = [1,2,3,4,5]
​a.append('hello')#在列表a的最后加上‘hello’元素​​

使用insert往任意位置插入新增元素

a.insert(1,'hello')
#1表示插入位置,’hello‘表示新增元素,如果插入位置超过列表元素,就会加到最后一个位置


列表查找元素
print(1 in a)
a是都有1,有返回True,没有返回False
print(1 not in a)
返回值是bool

a = [1,2,3,4,5]
print(1 in a)#判断1是否在列表a中

查找位置:
使用index方法,判定元素在列表所在位置

a = [1,2,3,4,5]
a.index(2)#看2在a中的位置,如果不在直接抛出异常

删除元素:
a.pop()删除最末尾的元素

​a = [1,2,3,4,5]
a.pop()#删除最后一个元素​

删除任意位置:
a.pop(1)#1是a中的下标的元素

​a = [1,2,3,4,5]
a.pop(1)#删除第二个位置的元素
​​

使用remove方法,按照值进行删除:
a.remove(’hello‘)#把列表a中的'hello'删除
你只需要知道要删除那个值就可以了

a = [1,2,3,4,5,'hello']
a.remove(’hello‘)#删除列表a中的‘hello’元素

列表的拼接:
多个列表进行拼接

1、使用 + 号
a + b
按先后顺序拼接,生成一个更大的列表,旧的列表不变

a = [1,2,3]
b = [4,5,6]
c = a + b
#c的结果为C = [1,2,3,4,5,6]


2、extend进行拼接
后一个列表拼接到前一个列表

b
a.extend(b)
修改a,不改变b

​
a = [1,2,3]
b = [4,5,6]
a.extend(b)
#a的结果为a = [1,2,3,4,5,6]​

None 特殊值:什么都没有

extend没有返回值,
c  = a.extend(b) #c没有值,为None,类似于C中的NULL空指针

3、 += 进行拼接


a += b 等价于 a = a + b #a旧的列表被替换了

​
​
a = [1,2,3]
b = [4,5,6]
a += b
#a的结果为a = [1,2,3,4,5,6]​​

相比之下,extend更高效,+=是拷贝,而前者是直接加在后面

http://www.lryc.cn/news/253897.html

相关文章:

  • 【langchain实战】开源项目-RasaGPT
  • 在线yml和properties相互转换
  • 数据收集与处理(爬虫技术)
  • C# 雪花算法生成Id工具类
  • 什么是通配符证书?
  • 西南科技大学模拟电子技术实验五(集成运算放大器的应用设计)预习报告
  • LeetCode 每日一题 Day 4
  • 服务器数据恢复—重装系统导致XFS文件系统分区丢失的数据恢复案例
  • Scala 从入门到精通
  • 华为OD机试 - 九宫格按键输入 - 逻辑分析(Java 2023 B卷 200分)
  • leetcode:225. 用队列实现栈
  • Centos7安装GItLab(在线版)
  • Linux入门笔记
  • nvm for windows使用与node/npm/yarn的配置
  • 打工人副业变现秘籍,某多/某手变现底层引擎-StableDiffusionWebUI界面基本布局和操作
  • 01、pytest:帮助你编写更好的程序
  • C语言--每日选择题--Day37
  • Android 12 及以上授权精确位置和模糊位置
  • scp 指令详细介绍
  • 构建第一个事件驱动型 Serverless 应用
  • 特征与特征图的区别
  • Linux学习笔记之七(shell脚本的基本语法)
  • PySpark开发环境搭建常见问题及解决
  • supervisor管理启动重启,Java,Go程序Demo
  • HarmonyOs 4 (三) ArkTS语言
  • PostGIS学习教程九:空间连接
  • C++ day56 两个字符串的删除操作 编辑距离
  • Android studio中如何生成jar包?
  • 【2】基于多设计模式下的同步异步日志系统-设计模式
  • 第十五届蓝桥杯模拟赛B组(第二期)C++