python基础数据类型--列表(list)
python基础数据类型--列表(list)#
列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增、删、改、查等操作
一列表的增、删、改、查#
1增:#
1.1增加到最后 append()
li = ['alex','wusir','egon','女神','taibai'] li.append('xiaoqiang') print(li)
1.2按索引位置添加 insert()
li = ['alex','wusir','egon','女神','taibai'] li.insert(3,'xingxing') print(li)
1.3迭代的去增加 extend()
li = ['alex','wusir','egon','女神','taibai'] li.extend('gaoya')#最终添加为元素 print(li)
2删#
2.1按索引删除 pop()
li = ['alex','wusir','egon','女神','taibai'] li.pop(0) print(li)
2.2按元素删除remove()
li = ['alex','wusir','egon','女神','taibai'] li.remove('taibai')
print(li)
2.3清空clear()
li = ['alex','wusir','egon','女神','taibai'] li.clear() print(li)
2.4直接删除del()
li = ['alex','wusir','egon','女神','taibai'] del li print(li) 会报错,因为被删除了
2.5切片删除del()
li = ['alex','wusir','egon','女神','taibai'] del [2:] print(li)
3改#
3.1按索引去改
li = ['alex','wusir','egon','女神','taibai'] li[0]='xiaoqiang' print(li)
3.2按切片去改
li = ['alex','wusir','egon','女神','taibai'] li[0:2]='learnpython' print(li)
4查#
4.1 for循环
li = ['alex','wusir','egon','女神','taibai'] for i in li: print(i)
4.2切片去查
li = ['alex','wusir','egon','女神','taibai'] l1 = li[0:2] print(l1)
二、列表的排序#
li = [1,3,4,5,7,6,8,9,2] li.sort() #正向排序 li.sort(reverse=True)#倒向排序 li.reverse() #反转 print(li)
三、列表是嵌套#
li = ['taibai','武藤兰','苑昊',['alex','egon','89'],'23',] lan=li[1][2] #找到兰字 print(lan)
四、join和split #
join()方法#
S.join():其中S是字符串连接符,join中参数必须是可迭代对象,join()方法输出可迭代对象的每一个元素,并用连接符将每一个元素连接
s = 'ilovepython' l = ['C','Java','C++','Ruby','PHP','Python'] print('_'.join(s)) # >>> 'i_l_o_v_e_p_y_t_h_o_n' print('_'.join(l)) # >>> 'C_Java_C++_Ruby_PHP_Python'
split()方法#
字符串和列表之间的转换
s = 'i_l_o_v_e_p_y_t_h_o_n' print(s.split('_')) # >>> ['i', 'l', 'o', 'v', 'e', 'p', 'y', 't', 'h', 'o', 'n']
五、range() #
# range:相当于都是数字的列表 [0,1,2,3,4.....,99] # range(起始值,终止值) for i in range(0,100): print(i) # 默认起始值不写默认为0 for i in range(100): print(i) # 同索引一样,range也可以加步长,加步长的话默认的0起始值就不可以省略 for i in range(0,100,2): print(i) for i in range(100,0,-2): print(i)
六、 enumerate()方法------有索引有值#
枚举----对于一个可迭代的/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时或得索引和值
lst = ['python','java','c','ruby','Go'] for i in enumerate(lst): print(i)
for index, name in enumerate(lst, 1): ####---1 是起始位置,可以修改100等等 print(index, name)
七、 深浅copy()简析 #
# 普通赋值运算 lst_1 = ['Python','Java',['Ruby','PHP','C++']] lst_2 =lst_1 # lst_2 = lst_1[:] 同理 print(lst_1) print(id(lst_1)) print('*'*10) print(lst_2) print(id(lst_2)) # >>> ['Python','Java',['Ruby','PHP','C++']] # >>> 18623368 # >>> ********** # >>> ['Python','Java',['Ruby','PHP','C++']] # >>> 18623368 # 浅copy()方法:第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。 lst_1 = ['Python','Java',['Ruby','PHP','C++']] lst_2 =lst_1.copy() # lst_2 = lst_1[:] 同理 lst_1[2].append('new_lanuage') print(lst_1,id(lst_1)) print('*'*10) print(lst_2,id(lst_2)) # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12001800 # >>> ********** # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12015048 # 深copy()方法:对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。 import copy lst_1 = ['Python','Java',['Ruby','PHP','C++']] lst_2 = copy.deepcopy(lst_1) lst_1[2].append('new_lanuage') print(lst_1,id(lst_1)) print('*'*10) print(lst_2,id(lst_2)) # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12533000 # >>> ********** # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++']] 12533512
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现