列表和元组
列表的作用是一次性存储多个数据,可以对这些数据进行的操作有:增,删,改,查
列表格式
[数据1,数据2,数据3,....]
创建方式
# 创建空列表 li1 = [] # 创建空列表 li2 = list() # 创建非空列表 li3 = [1,2,3,4] print(li1) print(li2) print(li3)
操作
先创建一个列表
li = [1,2,'a','b','c']
增
li = [1,2,'a','b','c'] li1 = ['q','w','e','r'] # 1添加单个数据 li.append('nihao') print(li) # [1, 2, 'a', 'b', 'c', 'nihao'] # 2添加整个序列数据,作为一个整体 li.append(li1) print(li) # [1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r']] # 3添加整个序列数据,拆开逐个添加进去 li.extend(li1) print(li) # [1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r'], 'q', 'w', 'e', 'r'] # 4指定位置添加数据 li.insert(0,'添加到开头0号位置') print(li) # ['添加到开头0号位置', 1, 2, 'a', 'b', 'c', 'nihao', ['q', 'w', 'e', 'r'], 'q', 'w', 'e', 'r']
删
li = [1,2,'a','b','c'] li1 = ['q','w','e','r'] # 1删除整个列表 del li1 # print(li1) # 因为li1不存在而报错 # name 'li1' is not defined. Did you mean: 'li'? # 2删除单个数据 del li[0] print(li) # [2, 'a', 'b', 'c'] # 3删除指定数据,还可以把删除的数据,赋给一个变量 a = li.pop(3) print(li) # [2, 'a', 'b'] print(a) # c b = li.pop() # 默认最后一个 print(li) # [2, 'a'] print(b) # b # 4删除第一个匹配项 # 先插入两个相同数据 li.insert(1,'ii') li.insert(1,'ii') print(li) # [2, 'ii', 'ii', 'a'] # 删去数据 li.remove('ii') # 不存在就会报错 print(li) # [2, 'ii', 'a']
改
li = [1,2,'a','b','c'] li1 = ['q','w','e','r'] # 1修改指定下标数据 li[0] = 0 print(li) # [0, 2, 'a', 'b', 'c'] # 2改变列表顺序,反转 li.reverse() print(li) # ['c', 'b', 'a', 2, 0] # 3排序 # li中既有数字又有字母不能比较,所以选择只含字母的 li1 测试 li1.sort(key=None, reverse=True) # key 以后说,reverse True表示降序,默认是升序 print(li1) # ['w', 'r', 'q', 'e'] 字母的比较应该是按照ASCII码比较的 # 4复制 # 直接等于 li2 = li # 使用copy函数方法 li3 = li.copy() # 对比列表的数据发现一样 print(li) # ['c', 'b', 'a', 2, 0] print(li2) # ['c', 'b', 'a', 2, 0] print(li3) # ['c', 'b', 'a', 2, 0] # 对比id说明不一样,id是每个数据的编号,好像和内存地址差不多 print(id(li)) # 2409533138752 print(id(li2)) # 2409533138752 print(id(li3)) # 2409533111680 # 改变列表li的数据,看看其他两个的影响 # 结果发现,copy产生的列表不会随着原来列表的变化而变化 li.pop() print(li) # ['c', 'b', 'a', 2] print(li2) # ['c', 'b', 'a', 2] print(li3) # ['c', 'b', 'a', 2, 0] # 再看看id,id不会因为列表数据变化而变化, # id不变,但是数据变化的变量叫可变数据类型 print(id(li)) # 2409533138752 print(id(li2)) # 2409533138752 print(id(li3)) # 2409533111680
查
li = [1,2,'a','b','c'] li1 = ['q','w','e','r'] # 1 index 查找指定数据下标 列表序列.index(数据,开始位置下标,结束位置下标) # print(li.index(1,1,4)) # 没有就会报错,函数不稳定,不建议用 print(li.index(1)) # 0 # 2 count 统计指定数据出现次数 print(li.count(3)) # 0 不存在也不会报错,可以在查找数据下标前判断有没有 # 3 len 得到列表的数据(元素)个数 print(len(li)) # 5 print(len(li1)) # 4 # 4 判断是否存在 print(1 in li ) # True print(1 in li1 ) # False print(1 not in li ) # False print(1 not in li1 ) # True # 5 切片 print(li[:2]) #[1,2]
列表 遍历 循环
li = [1,2,'a','b','c'] li1 = ['q','w','e','r'] # 1.while i = 0 while i<len(li): print(li[i]) i +=1 # 2.for for i in li: print(i)
总结
对于列表字符串之类的,还是for循环好用
元组格式
(1,2,3) # 小括号包裹住,英文逗号分割 (11,) #就算只有一个元素也要有个逗号,没有逗号相当于没加括号
元组创建
tup1 = tuple() #() tup2 = () #() tup3 = (1,) #(1,)
元组操作
- 和列表一样,但是元组是不可变数据类型
- 只有查找操作,所以列表的增删改操作都没有
- 非要改元组的数据也行,里边嵌入列表就好,只要不怕哪天出错就用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)