XX学Python·列表
# 列表定义格式:变量名 = [数据1,数据2,...]或a = list()用list方法 # 如果列表中只有一个元素,必须加逗号:变量名 = [数据,] name_list = ['Rose', 'Jack', 'Tom'] print(name_list) # ['Rose', 'Jack', 'Tom'] print(type(name_list)) # <class 'list'> # 在Python中,列表可以储存不同数据类型的数据 # 但在开发中,为了处理方便,一个列表一般储存同种数据类型 list1 = ['name', 12, False, [1,2,3]] print(list1) # ['name', 12, False, [1, 2, 3]]
列表的查询
index,count,in,not in
name_list = ['Rose', 'Jack', 'Tom', 'Jack'] # 索引查询,和字符串完全一致 print(name_list[0]) # Rose print(name_list[1]) # Jack print(name_list[-2]) # Tom # 利用索引进行切片 print(name_list[::-1]) # ['Jack', 'Tom', 'Jack', 'Rose'] print(name_list[1:3:1]) # ['Jack', 'Tom'] print(name_list) # ['Rose', 'Jack', 'Tom', 'Jack'],对原列表无修改 # index从左至右查询指定元素的索引,返回第一次出现的正向索引,没有查询到报错 print(name_list.index('Jack')) # 1 # count 计数,查询指定元素在列表中出现的次数 print(name_list.count('Jack')) # 2次 # in 判断元素是否在列表里,在返回True,不在返回False print('Jack' in name_list) # True # not in 判断元素是否不在列表里,不在返回True,在返回False print('Jack' not in name_list) # False
列表的增加
append,extend,insert。不会产生新的列表,都是在原有列表进行增加。
# append追加到列表末尾 num_list = [1, 2, 3, 4] print(num_list.append(5)) # None,直接打印append方法的调用不会输出任何内容 # 因为list在使用append方法时不会产生新的列表,而是在原有列表上进行修改 print(num_list) # [1, 2, 3, 4, 5] # extend追加数据序列 # 格式:列表.extend(数据序列),括号里必须是可迭代对象 list1 = [1,2,3] list2 = [4,5,6] list1.extend(list2) print(list1) # [1, 2, 3, 4, 5, 6] print(list2) # [4, 5, 6] # 追加字符串序列时,会将字母依次拆分放入列表中 str1 = 'love' list2.extend(str1) print(list2) # [4, 5, 6, 'l', 'o', 'v', 'e'] # 括号内必须是可迭代对象 # list2.extend(7) # TypeError: 'int' object is not iterable list2.extend('7') print(list2) # [4, 5, 6, 'l', 'o', 'v', 'e', '7'] list2.extend(['ai','ni']) print(list2) # [4, 5, 6, 'l', 'o', 'v', 'e', '7', 'ai', 'ni'] # insert指定索引插入,格式:列表.insert(插入位置索引,要插入的数据) num_list1 = [100, 300, 400] num_list1.insert(1,200) print(num_list1) # [100, 200, 300, 400] # 在开发中除非明确所有索引引用都修改完成,否则不用使用insert。 # append和extend对比 list3 = [11,12,13] list4 = [14,15,16] # append将list4当作一个元素追加到列表末尾 list3.append(list4) # [11, 12, 13, [14, 15, 16]] # extend的将list4当作多个元素进行拆分追加 list3.extend(list4) # [11, 12, 13, 14, 15, 16] # 添加5 c_list = [1, 2, 3] c_list += [5] c_list.extend([5]) print(c_list)
列表中的删除
del list[下标],list.pop(下标),list.remove(删除内容),list.clear()
# del 将数据引用切断,格式:del 要删除内容 list1 = [1,2,3,4] # del list1 # print(list1) # NameError: name 'list1' is not defined # del不仅可以删除元素,也可删除任何变量,非常强大,但有些不安全 del list1[2] # 通过索引获取要删除的元素并删除,索引超出范围会报错 print(list1) # [1, 2, 4] # 如果是循环中能删除吗? # 没删除,因为i是临时变量,这里是将i和2的引用关系删除,但list1和2的引用关系没删除 for i in list1: if i == 2: del i print(list1) # 还是[1, 2, 4],没有删除 # pop 删除指定索引元素,并返回该元素。 # 格式:列表.pop(要删除元素的索引),索引超出范围会报错 list2 = [11,12,13,14] print(list2.pop(2)) # 删除后可返回被删除的对象为13 print(list2) # [11, 12, 14] print(list2.pop()) # 若不传值,默认删除最后一个元素为14 print(list2) # [11, 12] # remove 删除指定元素(从左至右第一次出现的元素) # 格式:列表.remove(删除元素),没有会报错。 list3 = [3,4,5,6,7,8,5,5] list3.remove(5) print(list3) # [3, 4, 6, 7, 8, 5, 5] # clear 清空列表 # 将列表置为[],但与list3=[]有本质区别。后者是给了新的空间,以前的还在。 list3.clear() print(list3) # []
列表的修改
list[索引] = 修改后的值,list.reverse(),list.sort(key=排序规则函数,reverse=真或假)
# 通过索引进行修改格式:list[索引] = 修改后的值 list1 = [1,2,3,4] list1[1] = 6 # 索引要存在,不然报错 print(list1) # [1, 6, 3, 4] list1[2], list1[3] = 7, 8 # 可使用对多个变量赋值的形式修改多个值 print(list1) # [1, 6, 7, 8] # reverse 列表的反转。格式:列表.reverse() list2 = [1,2,3,4] list2.reverse() # print的话返回值是None print(list2) # [4, 3, 2, 1]原列表改变了 # sort 排序。格式:列表.sort(key=排序规则函数,reverse=真或假) list3 = [2,6,43,2,41,421] list3.sort() # 默认排序为升序 print(list3) # [2, 2, 6, 41, 43, 421] # 降序方法一:先排序,再反转 list3 = [2,6,43,2,41,421] list3.sort() list3.reverse() print(list3) # 降序方法二:直接使用倒叙排列 list3 = [2,6,43,2,41,421] list3.sort(reverse=True) print(list3) # 需求:根据list3中每个元素%7的余数大小进行排序(了解,后续还会讲) list3 = [2,6,43,2,41,421] list3.sort(key=lambda x: x % 7) print(list3)
列表的遍历
# while遍历列表 # len()函数可以查询列表的长度 list1 = [12, 123, 1, 1, 1234, 12, 34, 8] # print(len(list1)) i = 0 while i < len(list1): print(list1[i]) i += 1 # for 遍历列表 # 推荐使用for循环遍历容器类型(数据序列) for i in list1: print(i) # 输出索引和对应元素 list = ['html', 'js', 'css', 'python'] for a, b in enumerate(list): print ("%s :%s" % (a, b)) # 结果为0 :html 1 :js 2 :css 3 :python
列表的嵌套
- 列表中嵌套其他的子列表
name_list = [['小明', '小红', '小绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李四', '王五']] # 需求:获取值李四 print(name_list[2]) # 获取李四所在子列表 print(name_list[2][1]) # 再从子列表获取李四 # 需求:获取嵌套列表中的每一个值 for i in name_list: # 这样获得的是一级列表中的元素,即子列表 print(i) for sub_list in name_list: # 要获得嵌套后列表的元素,需要循环嵌套 for name in sub_list: print(name)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」