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

python之列表类型内置方法

python之列表类型内置方法

文章目录

  • python之列表类型内置方法
    • 引入
    • 一.定义方式
    • 二.类型转换
    • 三.常用操作 + 内置方法
    • 优先掌握的操作(***\******)
      • 1、按索引取值(正+反向)+ 可以取值也可以改值
      • 2、切片,顾头不顾尾 + 步长
      • 3、长度
      • 4、成员运算 in 和 not in
      • 5、追加 .append()
      • 6、插入 .insert()
      • 7、删除 del, remove, pop
      • 7、循环取值
    • 需要掌握的操作()
      • 1.统计字符的个数 : .count()
      • 2.扩展,追加多个值 : .extend()
      • 3.清空列表 : .clear()
      • 4. 浅拷贝列表 : .copy()
      • 5.计算个数 : .count()
      • 6.查找索引 : .index()
      • 7.排序 : .sort()
      • 8.反序 : .reverse()
    • 四.列表比较的规则
    • 五.模拟数据结构
      • 1.队列 : FIFO (先进先出)
      • 2.堆栈 : LIFO (后进先出)
    • 六.总结

引入

前面**“Python开发入门”**那一章已经对python基本的数据类型进行了大概的描述,以下我们主要从其内置方法来学习

一.定义方式

  • 在**"[ ]"**内用逗号分割开多个元素, 无类型限制
  • 列表类型的 “工厂” 就是 list
li = [111,222]
?背后的操作就是
li = list([111,222])

二.类型转换

  • 但凡可以被 for 循环遍历的类型都可以当做参数传给列表做成其元素
?将字符串转成列表类型
x = "aasdasd"
li = list(x)
print(li)  #['a', 'a', 's', 'd', 'a', 's', 'd']

?将字典转,转的是字典的"key"

?工作原理
li = []
x = "aasdasd"
for i in x:
    li.append(i)
print(li)

三.常用操作 + 内置方法

优先掌握的操作(***)

1、按索引取值(正+反向)+ 可以取值也可以改值

l=['a','b','c']
?正向
print(l[1])  #b
?反向
print(l[-1]) #c

?改值, 改大小写都行
l[2]='d' 
print(l)  #['a', 'b', 'd']
?如果索引不存在则报错
l[8]='d' 
print(l)  #报错

2、切片,顾头不顾尾 + 步长

li=['song','hai','xing','hhh','lihai']
?顾头不顾尾顾头不顾尾、步长
print(li[0:3])      # ['song','hai','xing']
print(li[0:5:2])    # ['song','xing','lihai']

?全部切片(浅拷贝)
print(li[:len(li)])
print(li[0:])
print(li[:]) 

?颠倒列表
print(li[::-1])  # ['lihai', 'hhh', 'xing', 'hai', 'song']

ps : 深浅拷贝,点我进入

3、长度

li=['song','hai','xing','hhh','lihai']
print(len(l))  #5

4、成员运算 in 和 not in

li = [111,222,333,[344,33]]
print(111 in l)  #True
print(099 in l)  #False

5、追加 .append()

  • 在列表的末尾追加一个字符
l=["aaa",2222,"cccc"]
res=l.append("ddd")
l.append("eee")
print(l)    # ['aaa', 2222, 'cccc', 'ddd', 'eee']
print(res)  # None (无返回值)

6、插入 .insert()

  • 在"谁"的前面插入一个字符
l=["aaa",2222,"cccc"]
res=l.insert(1,"xxx")
print(l)    #['aaa', 'xxx', 2222, 'cccc']
print(res)  #None (无返回值)

7、删除 del, remove, pop

  • del : 直接删除"谁", 通用万能删除, 它不支持赋值语法, 赋值会报错
  • .remove() : 直接按照成员来删除
  • .pop () : 按照索引来删除
msg=['song','hai','xing','hhh','lihai']
?通过索引来删除
del msg[1]
del msg[1:5:2]  #del加切片 (hai,hhh)
print(msg)

?直接通过元素来删除,没有返回值
msg.remove('hai')
print(msg)

?通过索引删除,并可拿到这个值
msg.pop(1)
msg.pop()  #不放置索引默认删除末尾
print(msg)

?"pop"的特有功能:有返回值
print(msg.pop(1))         #可以弹出这个值
print(msg.remove('hai'))  #只删除,不会返回这个值

7、循环取值

l=[111,222,333,444,555,666,777]
for i in l:
    print(i)

需要掌握的操作()

1.统计字符的个数 : .count()

l=[111,222,333,444,111,555,666,777]
print(l.count(111))  #2

2.扩展,追加多个值 : .extend()

l=[111,222,]
?字符串
l.extend("hello")
print(l)  #[111, 222, 'h', 'e', 'l', 'l', 'o']

?列表
l.extend(["xxx","yyy"])
print(l)  #[111, 222, 'h', 'e', 'l', 'l', 'o', 'xxx', 'yyy']

?追加字典的话加入的是"key"

3.清空列表 : .clear()

msg=['song','hai','xing','song','lihai']
msg.clear()
print(msg)  # []

4. 浅拷贝列表 : .copy()

msg=['song','hai','xing','song','lihai']
l=msg.copy()
print(l)  # ['song','hai','xing','song','lihai']

5.计算个数 : .count()

msg=['song','hai','xing','song','lihai']
print(msg.count('song'))  # 2

6.查找索引 : .index()

  • 找到指定字符在列表中的索引, 可以指定范围查找
  • 列表中没有像字符串中 : find、rfind、rindex 的这些方法
msg=['song','hai','xing','song','lihai']
print(msg.index('song',2,4))  # 3 (找不到会报错)

7.排序 : .sort()

l=[5,7,9,3,1,4]
l.sort()   #排序
print(l)

?参数"reverse"反序
l.sort(reverse=True)  #反向排序
print(l)

8.反序 : .reverse()

  • 将列表顺序反转过来, 改的就是源列表
li = [1, 'egon', 'alex', 'lxx']
li.reverse()
print(li)   # ['lxx', 'alex', 'egon', 1]

四.列表比较的规则

?依照ascll码表对应的十进制来比较
l1='hello'
l2='k'
print(l1 < l2)  #abcd....从小到大来比较

l1=[3,'a','g','j',]
l2=[1,'c','g',]
print(l1 > l2)  #要一一对应,不然报错

print('Z'>'a')  #大写小于小写A-Z,a-z
print('a'>'G')  #大于任何大写的字母

五.模拟数据结构

1.队列 : FIFO (先进先出)

  • 类似于商场扶梯, 先上先下
l=[]
?入队列
l.append("first")
l.append("second")
l.append("third")
print(l)  #['first', 'second', 'third']

?出队
print(l.pop(0))  #first
print(l.pop(0))  #second
print(l.pop(0))  #third

2.堆栈 : LIFO (后进先出)

  • 类似于往箱子里叠衣服
l=[]
?入栈
l.append("first")
l.append("second")
l.append("third")
print(l)  #['first', 'second', 'third']

?出栈
print(l.pop())  #third
print(l.pop())  #second
print(l.pop())  #first

六.总结

  • 可以有多个值
  • 有序, 依赖于索引取值
  • 可变类型—>不可 hash 类型

相关文章:

  • python之元组类型内置方法
  • python之字典类型内置方法
  • python集合类型内置方法
  • python文件处理之编码字符
  • python文件处理
  • 函数的基本使用
  • python之迭代器
  • python之三元表达式、生成式、生成器表达式
  • 面向过程编程思想与匿名函数及其应用
  • python之函数递归与调用
  • python之二分法
  • python之json模块
  • python之pickle模块
  • python之time与datetime模块
  • python之random模块
  • python3.6+scrapy+mysql 爬虫实战
  • Java IO学习笔记一
  • java多线程
  • Js基础——数据类型之Null和Undefined
  • Linux gpio口使用方法
  • redis学习笔记(三):列表、集合、有序集合
  • 编写符合Python风格的对象
  • 基于游标的分页接口实现
  • 利用DataURL技术在网页上显示图片
  • 前端代码风格自动化系列(二)之Commitlint
  • 全栈开发——Linux
  • 试着探索高并发下的系统架构面貌
  • 延迟脚本的方式
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 最近的计划
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​2020 年大前端技术趋势解读
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)SpringCloud 整合Python
  • (11)MATLAB PCA+SVM 人脸识别
  • (arch)linux 转换文件编码格式
  • (Oracle)SQL优化技巧(一):分页查询
  • (pytorch进阶之路)扩散概率模型
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core 项目指定SDK版本
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET成年了,然后呢?
  • .NET程序员迈向卓越的必由之路
  • .NET业务框架的构建
  • @Conditional注解详解
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...