Python全栈笔记(六)
4. 列表(list)
可以把列表当做是一个有序的容器,在里面可以放很多的元素。
4.1 列表的定义
- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它在支持数字,字符串甚至可以包含列表(所谓嵌套)
- 列表是写在方括号[]之间的,用逗号分隔开的元素列表
- 列表索引值以0为开始,-1为从末尾的开始位置
- 列表可以使用+操作符进行拼接,用*表示重复
>>>user_list = ["铁锤","钢弹","弹头","导弹", "火箭"]
>>>print(user_list[1:4])
['钢弹', '弹头', '导弹']>>>number_list = [98,88,666,12,-1]
>>>print(user_list + number_list)
['铁锤', '钢弹', '弹头', '导弹', '火箭', 98, 88, 666, 12, -1]testlist = [1,"测试"]
print(type(testlist[0])) # 查看元素类型为int
print(type(testlist[1])) # 查看元素类型为str
4.2 常用方法(功能)
为了方便我们操作列表,Python中对所有列表提供了一些的功能。
操作名称 | 操作方法 | 举例 |
---|---|---|
访问列表元素 | 通过下标直接访问 | print(list[1]) |
列表切片 | 使用[: :] | list[2:5:2] |
遍历列表 | 使用for循环 | for i in list: print(i) |
[增]列表尾部追加 | 使用append方法 | 如下详细说明 |
[增]列表追加数据 | 使用extent方法 | 如下详细说明 |
[增]列表插入数据 | 使用insert方法 | 如下详细说明 |
[删]列表删除数据 |
del:通过索引删除指定位置的元素 remove:移除列表指定值的第一个匹配值。如果没找到会抛异常 |
如下详细说明 |
[删]列表尾部弹出 | 使用pop方法 | 如下详细说明 |
[改]更新列表数据 | 通过下标直接修改 | list[1] = “Rio” |
[查]列表成员关系 | in,not in | 2 in list1 |
[排]列表的反转 | reverse | 如下详细说明 |
[排]列表的排序 | sort | 如下详细说明 |
列表的加法操作 | + | list3 = list1 + list2 |
- 追加,在原列表中尾部追加值。append
user_list = ["苍老师", "有坂深雪", "大桥未久"]print("-----增加前,列表的数据-----")print(user_list)usertemp = input("请输入你喜欢的女优姓名:")user_list.append(usertemp)print("-----增加后,列表的数据-----")print(user_list)
- 扩展,将一个列表中的元素添加另外一个列表。extend
a = [1,2]b = [3,4]a.append(b) # 将b列表当做一个元素,加入到a列表print(a)a.extend(b) # 将b列表中的每个元素,逐一加入到a列表print(a)
- 插入,在原列表的指定索引位置插入值。insert
user_list = ["苍老师", "有坂深雪", "大桥未久"]print("-----增加前,列表的数据-----")print(user_list)user_list.insert(0, "天海翼") #指定下标位置插入元素。第一个变量表示下标,第二个变量表示元素(对象)user_list.insert(2, "吉泽明步")print("-----增加后,列表的数据-----")print(user_list)
- 在原列表中根据值删除(从左到右找到第一个删除)。remove,注意区别del
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "苍老师", "柚木提娜", "苍老师"]print("-----删除前,列表的数据-----")print(user_list)user_list.remove("苍老师")print("-----remove删除后,列表的数据-----")print(user_list)del user_list[2]print("-----del指定元素删除后,列表的数据-----")print(user_list)
- 在原列表中根据索引踢出某个元素。pop
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "苍老师", "柚木提娜", "苍老师"]print("-----删除前,列表的数据-----")print(user_list)item1 = user_list.pop() # 在user_list删除最后一个,并讲删除值赋值给item1print("-----删除后,列表的数据-----")print(user_list)item2 = user_list.pop(-2) # 在user_list中删除下标为-2的值,并将删除值赋值给item2print(user_list)
- 清空原列表
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "苍老师", "柚木提娜", "苍老师"]user_list.clear() print(user_list)
- 列表的排序
user_list = [1,4,2,3,5] user_list.reverse() #将列表所有元素反转user_list.sort() #将列表元素升序user_list.sort(reverse=True) #将列表元素降序
- 查找列表元素(in,not in)
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "苍老师", "柚木提娜", "苍老师"]findName = input("请输入你要查找的名字:")if findName in user_list:print("库里包含该关键字")else:print("没有找到")mylist = ["a","b","c","a","b"]print(mylist.index("a",1,4)) #查询指定下标范围的元素并返回对应数据的下标print(mylist.index("a",1,3)) #查找范围左闭右开[1,3),找不到会报错print(mylist.count("b")) #统计某个元素出现的次数
4.3 转换为列表
如果想要让某些元素转换为列表类型,一般需要通过list强转,他的内部其实就是循环每个元素,再将元素追加到列表中。
所以,想要转换为列表类型有要求:必须可以被循环的元素才能转换为列表。
message = "我猜你的枪里没有子弹"
data = list(message)
print(data) # ["我","猜","你","的","枪","里","没","有","子","弹"]
4.4 其他
- 获取长度
user_list = ["苍老师", "有坂深雪", "大桥未久"]length = len(user_list) # len()可以得到列表的长度# 用for循环遍历元素i = 0while i < length:print(user_list[i])i += 1
- 索引
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]print(user_list[0])print(user_list[3])print(user_list[-1])print(user_list[-4])
- 根据索引删除元素
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]del user_list[1]del user_list[3]
- 根据索引替换元素
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]user[0] = "天海翼"user[-1] = "仁科百华"
- 切片
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]print( user_list[0:2] )print( user_list[1:] )print( user_list[:-1] )
- 步长
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]print( user_list[1:4:2] )print( user_list[0::2] )print( user_list[1::2] )print( user_list[4:1:-1] )
- for循环
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]
for item in user_list:print(item)
user_list = ["苍老师", "有坂深雪", "大桥未久", "三上悠亚", "Kirara Asuka", "柚木提娜", "吉泽明步"]for item in user_list:if item == "Kirara Asuka":continueprint(item)
4.5 嵌套
列表属于容器,内部可以存放各种数据,所以他也支持列表的嵌套,如:
data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ]
对于嵌套的值,可以根据之前学习的索引知识点来进行学习,例如:
data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ]
print( data[0] )
print( data[1] )
print( data[0][2] )
print( data[1][-1] )
data.append(666)
print(data)
del data[-2]
print(data)
data[1].append("谢大脚")
print(data)
练习题
Python全栈笔记(六)相关推荐
- Python全栈笔记(一)
环境搭建 1.计算机基础 1.1 计算机组成 计算机组成主要分为五个部分: \1. 控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序.数据.地址,协调 ...
- Python全栈笔记(练习题,持续更新)
# 1. 写代码,有如下列表,按照要求实现每一个功能.li = ["alex", "WuSir", "ritian", "barr ...
- Python全栈(六)项目前导之11.Vue-Router的使用
Vue-Router的使用 一.匹配404错误 二.嵌套路由 三.编程式导航 四.命名路由和视图 1.命名路由 2.命名视图 五.重定向和别名 一.匹配404错误 在路由规则中, * 匹配任意字符,所 ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- python全栈开发中级班全程笔记(第三模块、第一章(1.面向对象基础))
python全栈开发笔记第三模块 第一部分 第一章 :面向对象(类) 一.面向过程编程1.面向过程编程:主要是过程二字,所谓过程,就是指解决问题的步骤,也可以说是设计一套流水线(机 ...
- 唤醒手腕Python全栈工程师学习笔记(持久存储篇)
这个篇目是"持久存储篇",讲的就是Python操作数据库,这边介绍3种数据库,分别是MySQL.Redis.Mongodb 1. Python操作MySQL数据库 MySQL属于传 ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
- Python全栈学习day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进 ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进 ...
- python全栈开发工程师_【2018重磅巨献】老男孩Python高级全栈开发工程师第三期...
2018年老男孩python全栈第三期老男孩python全栈3期 老男孩教育Python全栈开发为国内首家专注python全方面开发的教育机构 老男孩Python全栈第三期课程详细目录,高清不加密! ...
最新文章
- Java多线程:线程8锁案例分析
- 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值
- 记录使用Spartan-6 FPGA进行一次3-8译码器实验
- 石家庄学院c语言试题,谁会高级语言程序设计?要求用C语言,帮帮我把,愁死我啦...
- C语言与JAVA内存管理_C语言内存管理
- Spring Cloud构建微服务架构-Hystrix监控面板
- JavaScript浮点运算0.2+0.1 !== 0.3
- lombok标签_微服务之:springboot入门、Swagger、Lombok使用
- c++ win32 获取串口高低电平_串口和USB的区别,几种常见的串口协议
- JSP — 如何设置jsp中cookie的过期时间
- 小波神经网络模型matlab,神经网络预测模型优点
- gif动态图批量加水印方法
- 使用GDAL实现DEM的地貌晕渲图(三)
- 解决无法解析服务器DNS地址
- 从都市丽人2022年财报,看专业内衣如何进阶突围
- 4G<-->5G互操作
- 取消notepad++打开.bat文件
- TalkingData:未来10年是大数据价值变现的阶段
- 中国定制家具行业深度调研及投资前景预测报告
- linux cp命令的-f 参数
热门文章
- 4个免费的ASP.NET托管网站
- 如何添加BigBoss的Cydia源地址
- 公开密匙(public key)和专用密匙(private key)
- 无法解析 taglibs:standard:1.1.2
- 一套键鼠控制多台电脑操作——Synergy软件(windows环境)
- Python绘制二元函数图像
- Sinew探索金融衍生品领域,增强金融市场流动性
- 二本b类大学计算机专业,位于广东的二本B类大学有哪些?
- python实现杨辉三角的规律_Python实现杨辉三角算法
- 产品经理面试必问5大问题 (六)