Python 篇章(十)
一、List概念
1. 什么是列表?
- 列表本质
- 是一种有序的集合,并且列表是可变的
- 而且列表中的元素可以是不同类型的
- 列表就是用 中括号 将 一个或多个元素 括起来的数据列表
- 例如:
- [1]
- ["lemon"]
- [1, "lemon"]
- 例如:
2. 如何创建列表?
-
格式:
- 列表名 = [列表选项1, 列表选项2, 列表选项3,......列表选项n]
-
示例:
# 创建一个空列表
list1 = []
print(list1)
# 创建一个带有元素的列表
list2 = [10, 20, 30, 40, 50]
print(list2)
# 列表中的数据可以是不同类型
list3 = [10, 10.1, "nice", True, False]
print(list3)
- 思考:要存储5个人的年龄并求出平均值
- 解决方法:使用列表
list4 = [10, 20, 30, 40, 50]
index = 0
sum = 0
while index < 5:
# [index]是list列表的下标
sum += list4[index]
index += 1
if index == 5:
print("总和年龄:%d" % (sum))
print("平均年龄:%d" % (sum / index))
二、列表元素的访问
1. 取值
- 功能:指定取出列表中的元素值,默认取出所有元素值
- 格式:列表名[下标]
- 注意:不要越界(下标不能超出可表示的范围,否则会报错)
- 示例:
list5 = [1, 2, 3, 4, 5]
print(list5[2])
2. 替换
- 功能:替换掉列表中的元素
- 格式:列表名[下标] = value
- 示例:
list6 = [1, 2, 3, 4, 5]
list6[2] = 300
print(list6)
三、列表操作
1. 列表组合
- 示例:
list7 = [1, 2, 3]
list8 = [4, 5, 6]
list9 = list7 + list8
print("list7 = %s, list8 = %s, list9 = %s" % (list1, list2, list3))
注意:
list7
和list8
列表的元素不会变,我们不过是用了这两个列表定义了一个新的list9
列表
2. 列表重复
- 示例:
list10 = [10, 20, 30]
print(list10 * 2)
3.判断元素是否在列表中
- 示例:
- 判断
list11
列表里有没有 {5 6} 这两个元素,如果有返回 True,没有返回 False
- 判断
list11 = [1, 2, 3, 4, 5]
print(5 in list11) # True
print(6 in list11) # False
4. 列表截取
- 功能:从开始下标之后开始截取,截取到结束下标之前
- 格式:列表名[开始下标:结束下标]
- 示例:
list12 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list12[2:])
print(list12[:6])
print(list12[2:6])
5. 二维列表
- 逻辑:这个 list 列表中的元素从某种意义上也是一个列表; 无限制嵌套元素列表
- 示例:
list13 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list13) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list13[1]) # [4, 5, 6]
print(list13[1][1]) # 5
四、列表方法
大部分和前面字符串的方法一样
1. append()
- 在 list 列表末尾追加一个新的元素值;但是一次只能追加一个新元素!
- 示例
list = [1, 2, 3, 4, 5]
print(list)
list.append(6)
print(list)
list.append([7,8,9])
print(list)
2. extend()
- 在 list 列表的末尾一次性追加另一个列表中的多个元素值; 这个方法可以追加多个元素
- 示例
list = [1, 2, 3, 4, 5]
list.extend([6, 7.1, "lemon"])
print(list)
3. insert()
-
在下标处插入一个元素,也就是在下标处的前面插入一个元素,并且原下标向后顺延;但一次只能插入一个!
-
格式:列表名.insert(下标, 值)
-
示例
list = [1, 2, 3, 4, 5]
list.insert(0, -1)
print(list)
list.insert(0, [10, 20])
print(list)
4. pop()
- 移除列表中指定下标处的元素,默认移除最后一个元素,并可以返回被删除的数据
- 示例
list = [1, 2, 3, 4, 5]
list.pop()
print(list) # [1, 2, 3, 4]
list.pop(2)
print(list) # [1, 2, 4]
print(list.pop(1), list) # 2 [1, 4];返回被删除的元素值
5. remove()
- 只删除列表中指定元素的第一个匹配的结果,后面如果再出现相同元素,一律忽略;
- 示例
list = [1, 2, 3, 4, 5, 4, 7, 4]
list.remove(4)
print(list) # [1, 2, 3, 5, 4, 7, 4]
list.remove(4)
print(list) # [1, 2, 3, 5, 7, 4]
6. clear()
- 清除列表中所有的元素
- 示例
list = [1, 2, 3, 4, 5]
list.clear()
print(list) # []
7. index()
- 从列表中找出某个元素值的第一个匹配的索引值
- 示例
list = ["a", "b", "c", "d", "e", "d", "g", "d", "i", "d"]
index1 = list.index("d")
index2 = list.index("d", 8) # 从第八个下标开始
print(f"index1 = {index1}\nindex2 = {index2}") # index1 = 3, index2 = 9
8. count()
- 查看列表中的元素值出现过多少次
- 示例
list = [1, 2, 3, 4, 5, 3, 3, 5, 3]
print(list.count(3)) # 4
- 案例
- 如何将下面的 list 列表中的 {3} 全部一次性删除
gc_list = [3, 2, 3, 4, 5, 3, 3, 5, 3]
# print(gc_list.count(3)) # 5
num1 = 0
all = gc_list.count(3)
while num1 < all:
gc_list.remove(3)
num1 += 1
print(gc_list) # [2, 4, 5, 5]
9. len()
-
统计列表中的元素总数
-
示例
list = [1, 2, 3, 4, 5]
print(len(list))
10. max() min()
- 获取列表中的(最大、最小)值
- 示例
list = [1, 2, 3, 4, 5]
print(max(list))
print(min(list))
11. reverse() 倒序
- 示例
list = [1, 2, 3, 4, 5]
list.reverse()
print(list)
12. sort 排序 升序
- 示例
list = [2, 1, 3, 4, 5]
list.sort()
print(list) # [1, 2, 3, 4, 5]
13. 拷贝
- 有两种:
- 浅拷贝(引用拷贝)
- 深拷贝(内存的拷贝)
- 浅拷贝示例
list1 = [1, 2, 3, 4, 5]
list2 = list1
list2[1] = 200
print(list1) # [1, 200, 3, 4, 5]
print(list2) # [1, 200, 3, 4, 5]
print(id(list1)) # 2970263183944
print(id(list2)) # 2970263183944
- 深拷贝示例
list1 = [1, 2, 3, 4, 5]
list2 = list1.copy()
list2[1] = 200
print(list1) # [1, 2, 3, 4, 5]
print(list2) # [1, 200, 3, 4, 5]
print(id(list1)) # 1849288122952
print(id(list2)) # 1849288123016
14. list 去重复
- 因为set本身是无序和无重复元素的集合,所以默认会把重复的元素清理掉,从而在将set转换成list列表
- 示例1
list = [1, 2, 3, 2, "lemon", "lemon"]
list = list(set(list))
print("list = %s " % list, type(list)) # list = [1, 2, 3, 'lemon'] <class 'list'>
- 示例2
list = [8, 7, 9, 9, "nice", "nice"]
set1 = set(list) # {8, 9, 'nice', 7}
list33 = list(set1)
print("list = %s " % list, type(list)) # list33 = [8, 9, 'nice', 7] <class 'list'>
15. 将元组转成列表
- 示例1
list1 = list((1, 2, 3, 4))
print(list1) # [1, 2, 3, 4]
- 示例2
tuple1 = (1, 2, 3, 4, 5)
list1 = list(tuple1)
print(list1) # [1, 2, 3, 4, 5]
五、列表的遍历
list = ['html', 'js', 'css', 'python']
# 方法1
print('遍历列表方法1:')
for i in list:
print ("序号:%s 值:%s" % (list.index(i) + 1, i))
print ('\n遍历列表方法2:')
# 方法2
for i in range(len(list)):
print ("序号:%s 值:%s" % (i + 1, list[i]))
# 方法3
print ('\n遍历列表方法3:')
for i, val in enumerate(list):
print ("序号:%s 值:%s" % (i + 1, val))
# 输出结果
遍历列表方法1:
序号:1 值:html
序号:2 值:js
序号:3 值:css
序号:4 值:python
遍历列表方法2:
序号:1 值:html
序号:2 值:js
序号:3 值:css
序号:4 值:python
遍历列表方法3:
序号:1 值:html
序号:2 值:js
序号:3 值:css
序号:4 值:python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律