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

【列表类型】

1、按索引取值

索引可正向存取,也可反向存取

l = ['111', 'paipai', 'cat']
# 正向取值
print(l[1])
# 方向取值
print(l[-1])
# 通过索引给列表重新赋值,前提:索引存在
l[0] ='ccat'
print(l)
# 索引不存在的情况下,取值or重新赋值的情况下都会报错
l[3]=111
print(l)

2、切片操作

前闭后开,顾头不顾尾。可指定步长

# 切片操作
l = ['lll', 111, 222, 3333, 4444, 555, 777, 888, 999]
print(l[0:3])
# 指定步长进行操作
print(l[0:8:2])
# 取出整个列表的值
print(l[0:len(l)])
print(l[:]) #不指定 start 与 end 值直接取出整个列表的值
# 切片相当于浅拷贝操作(可变类型数值都是浅拷贝,字符串类型的拷贝就是深拷贝
l_new=l[:]
print(id(l),id(l_new))
l1 =('lll',111,222,3333,4444,555,777,888,999,[1,2,3])
l1[-1][2]=333
print(l)
print(id(l),id(l_new))
# 将列表的值按照倒序顺序取出
print(l[::-1])
msg='hello:egon:<>:18[]==123'
msg2=msg
print(msg,id(msg))
print(msg2,id(msg2))

3、长度

print(len[1,2,3])

4、成员运算符 in not in

print('aaa' in ['aaa',1,2])
print('bbb' not in ['aaa',1,2])

5、往列表中添加值

# 往列表中添加值
# 1)在列表末尾追加
list1 =['aaa','bbb','ccc']
list1.append('ddd')
list1.append('eee')
print(list1)
# 2)在指定的索引前面插入值
list1.insert(0,111)
list1.insert(0,222)
print(list1)
# extend 将A列表中的值按照单个值的样式添加进列表中,而不是整个列表的值都添加进去
new_l=[1,2,3]
l=[111,'paiapi','cat']
l.append(new_l) # 直接在列表中添加进了一个列表
print(l)
# 通过代码实现依次把列表的值添加进去,而不是直接添加整个列表
# 方式一:(比较复杂,不建议使用)
for item in new_l:l.append(item)print(l)
# 方式二:直接通过 extend来实现
l.extend(new_l)
print(l)
# 关注:extend也可以直接把字符串拆开,单个依次添加进去;
l.extend("abdc")
print(l)
l.extend("派派爱吃罐头")
print(l)

5、删除

 2)方式二 l.pop() 根据索引删除,会返回删除的值
l = ['aaa', 'bbb', 'ccc']
l.pop() # 不指定索引默认删除最后一个
print(l)
res=l.pop(0) # 指定索引,删除列表中第一个元素
print(l)
print(res)# 3) l.remove() 根据元素进行删除,返回值None
l =[111,'egon',[1,2,3],'hello']
l.remove([1,2,3])
print(l)

6、 循环

for x in [1,'aaa','bbb']:print x

需要掌握的操作

1) l.count(x)

统计x在列表中出现的次数
l =[1,'aaa','bbb','bbb']
print(l.count('bbb'))  # 运行结果 2

2) l.index(x)

统计x在列表中首次出现的索引位置

l =[1,'aaa','eeee','bbb','bbb']
print(l.index('bbb')) 运行结果为3

3) l.clear

清空列表

l =[1,'aaa','eeee','bbb','bbb']
# print(l.clear())  # 当()里没有参数时,是不能直接通过print参数执行输出值
l.clear()
print(l)  # 输出一个空列表

4)l.reverse()

将列表进行倒序

l=[1,'aaa','bbbb','cccc','bbbb','bb','bbbb']
print(l)
l.reverse()
print(l)
# print(l.reverse()) # 注意 l.reverse不能直接通过print将列表打印出来.当()里没有参数时,是不能直接通过print参数执行输出值.执行命令输出None

5)l.sort()

默认将列表按照从小到大的顺序进行排序,称之为升序

l = [1,0,-2,4,8]
l.sort()
print(l)
# 实现降序排序
l.sort(reverse=True)  # TRUE 不能采用小写
print(l)
📢 排序关注点
l = [11,'a',12]
l.sort()
print(l) # 执行报错,只能同种类型的数值进行比较

字符串可以比较大小,主要根据字符在ASCI码中先后顺序加以区别。表中排在后面的字符大于排在前面个字符

# 字母排序
l = ['a','c','b']
l.sort()
print(l)

📚 两个列表之间也可以比较大小,原理同字符串一样,但是对应索引位置的元素必须是同种类型,否则无法比较

l1 = [1,'abc','zaa']
l2 = [1,'abc','zb']
print(l1<l2)   # 执行结果为true
🌶 队列与堆栈

队列:FIFO,先进先出

# ✅队列 FIFO,先进先出
from collections import deque
l =deque() # 创建空的双端队列作为队列
# 入队操作
l.append("first")
l.append("second")
l.append("third")
print("队列中的内容为:",l)
# 出队操作
print(l.popleft())
print(l.popleft())
print(l)

堆栈:LIFO 后进先出

# 堆栈:LIFO 后进先出
z=[]
# 入栈操作
z.append('first')
z.append('second')
z.append('third')
print(z)# 出栈操作(不指定顺序,默认先移除最后添加的值
print(z.pop())
print(z.pop())
http://www.xdnf.cn/news/351451.html

相关文章:

  • Spring Boot + MyBatis-Plus 高并发读写分离实战
  • 人工智能 机器学习期末考试题
  • Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?
  • 内存安全革命:工具、AI 与政策驱动的 C 语言转型之路
  • 安全核查基线-3.用户umask设置策略
  • 数字IC前端学习笔记:锁存器的综合
  • Vue3 + Element Plus 动态表单实现
  • 对PyTorch模块进行性能分析
  • 一种海杂波背景下前视海面目标角超分辨成像方法——论文阅读
  • 【Python 元组】
  • Docker容器启动失败?无法启动?
  • 一些模型测试中的BUG和可能解决方法
  • linux系统管理
  • Java+Selenium+快代理实现高效爬虫
  • 通用外设驱动模型(四步法)
  • 探索大型语言模型的 LLM 安全风险和 OWASP 十大漏洞
  • (x ^ 2 + 2y − 1) ^ 3 − x ^ 2 * y ^ 3 = 1
  • React Native 前瞻式重大更新 Skia WebGPU ThreeJS,未来可期
  • AI客服问答自动生成文章(基于deepseek实现)
  • JAVA简单例题+抽象+继承
  • openssl中BIO的使用
  • PostgreSQL创建只读账号
  • 数据中台建设系列(五):SQL2API驱动的数据共享与服务化实践
  • 游戏引擎学习第266天:添加顶部时钟概览视图。
  • TensorFlow深度学习实战(15)——编码器-解码器架构
  • 可视化图解算法36: 序列化二叉树-I(二叉树序列化与反序列化)
  • 用 Java 实现 哲学家就餐问题
  • 数字信号处理|| 离散序列的基本运算
  • IPv6协议
  • 基于Transformer与SHAP可解释性分析的神经网络回归预测模型【MATLAB】