列表(List) 的增删改查及其他方法

一、列表的简介

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = [‘fuyong’,123,Ture,(1,2,3,’123’),[1,2,3,’小明’,],{‘name’:’fuyong’}]   。列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

  下面我们就来详细讲解一下列表的增删改查以及其他方法。

二、增加列表元素的方法

注意:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!

▷ append()方法:

此方法是用来在列表的结尾处追加元素,例如:

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.append('吴')
3 print(name_list)
4 # 结果是 ['赵', '钱', '孙', '李', '周', '吴']

▷insert()方法:

此方法是用来在列表的指定索引位置插入内容,后面参数分别传递索引值、插入元素

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.insert(2,'付')
3 print(name_list)
4 # 结果为:['赵', '钱', '付', '孙', '李', '周']

▷extend()方法:

此方法是用来拓展列表,给他们追加一些元素,后面的参数可以是字符串,列表以及任何可迭代对象,python解释器会将此对象一一拆分然后追加至列表,例如:

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.extend('吴')
3 name_list.extend('郑王')
4 name_list.extend("fu")
5 name_list.extend(['a','b','c'])
6 name_list.extend(range(3))
7 print(name_list)
#结果为:['赵', '钱', '孙', '李', '周', '吴', '郑', '王', 'f', 'u', 'a', 'b', 'c', 0, 1, 2]

三、删除列表元素的方法

▷pop()方法:

此方法是用来删除列表中的一个指定索引位置所对应的值,然后返回被删除的对象,参数为索引值,默认删除列表种最后一个元素,如下:

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.pop()
3 name_list.pop(2)
4 name_print(list)
5 结果为['赵', '钱', '李']

▷remove()方法:

此方法是用来删除列表中一个指定元素,参数就是指定元素(如果找不到则会报错),如下:

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.remove('孙')
3 print(name_list)
4 # 结果为:['赵', '钱', '李', '周']
5 #注意:移除之前得确保列表中有指定的值,否则会报错

▷clear()方法:

此方法是用来清空列表中所有的值(原有的列表就变成一个空列表了),如:

1 name_list = ['赵','钱','孙','李','周',]
2 name_list.clear()
3 print(name_list)
# 结果为 []

▷ del 方法:

此方法用来删除整个列表(删除之后此列表就不存在了)

1 name_list = ['赵','钱','孙','李','周',]
2 del name_list
3 print(name_list)
4 # 报错:NameError: name 'name_list' is not defined

四、修改列表元素的方法

修改元素的方法用索引以及切片的方法,如:

▷ 索引:

list_name[0] = '修改后的值'

▷ 切片:

list_name[0:3] = [a,b,c]   

注意:后面需要修改的值的总数可以不与切片的长度相对应,比如说[0:3]这个切片长度为3,后面可以传一个有2个或者4个元素的列表,此时,只是将切片所对应的值剔除,然后将后面列表依次插入

后面也可以赋值一个字符串,此时,只是将切片所对应的值剔除,然后将后面字符串拆开然后依次插入

list_name[0:3] = 'fuyong'

name_list = ['赵','钱','孙','李','周',]
name_list[2]= 'sun'
print(name_list)
#结果为:['赵', '钱', 'sun', '李', '周']

name_list[2]= name_list[2].title()
print(name_list)
# 结果为:['赵', '钱', 'Sun', '李', '周']

name_list[0:2] = ['zhao','qian']
print(name_list)
#结果为:['zhao', 'qian', 'Sun', '李', '周']

name_list[0:2] = ['zhao','qian','zheng']
print(name_list)
#结果为:['zhao', 'qian', 'zheng', 'Sun', '李', '周']

name_list[0:2] = ['zhao']
print(name_list)
#结果为:['zhao', 'zheng', 'Sun', '李', '周']

name_list[0:3] = 'fuyong'
print(name_list)
#结果为:['f', 'u', 'y', 'o', 'n', 'g', '李', '周']

五、查询列表元素的方法

查询元素的方法用索引以及切片的方法,如:

▷ 索引:

list_name[0] 

▷ 切片:

list_name[0:3]

list_name[0:3:2]

 1 name_list = ['赵','钱','孙','李','周',]
 2 print(name_list[0])   # 赵
 3 print(name_list[2])   # 孙
 4 
 5 print(name_list[0:2])   # ['赵', '钱']
 6 print(name_list[1:])    # ['钱', '孙', '李', '周']
 7 
 8 print(name_list[0:4:2]) # ['赵', '孙']
 9 print(name_list[:4:2])  # ['赵', '孙']
10 
11 print(name_list[4:0:-1]) #['周', '李', '孙', '钱']
12 print(name_list[-2:0:-1]) #['李', '孙', '钱']

另外,如果需要查询列表中所有的元素,可以用for循环来实现,如:

1 name_list = ['赵','钱','孙','李','周',]
2 for name in name_list:
3     print(name)

'''
输出结果如下:

六、列表的其他方法

▷ len(list)方法:

此方法可以用来计算列表的长度,如下:

1 name_list = ['赵','钱','孙','李','周',]
2 print(len(name_list))
3 #输出结果为5

▷count()方法:

此方法用来计算列表中一个元素出现的次数,如下:

1 name_list = ['赵','钱','孙','李','周','赵']
2 print(name_list.count('赵'))
3 # 输出结果为2

 ▷sort()方法:

次方法是对列表进行排序(列表里的元素要为数字类型),默认是正序,可以指定倒序(reverse = True)

1 num_list = [1,3,6,2,5,0,8]
2 num_list.sort() #默认为正序排列
3 print(num_list)
4 #输出结果为:[0, 1, 2, 3, 5, 6, 8]
5 
6 num_list.sort(reverse=True)  #指定reverse为True 则为倒序 
7 print(num_list)
8 #输出结果为[8, 6, 5, 3, 2, 1, 0]

▷reverse():

此方法是将列表里所有元素进行翻转,注意,不是排序,是将所有元素倒过来 ,如:

1 name_list = ['赵','钱','孙','李','周']
2 name_list.reverse()
3 print(name_list)
4 #结果为:['周', '李', '孙', '钱', '赵']

▷join()方法:

此方法用法与字符串的join方法一样,就是将列表里的元素用指定字符连接起来,字符可以是空格,可以是空字符,可以是下划线以及任意字符,如下:

1 name_list = ['赵','钱','孙','李','周']
2 print('*'.join(name_list))   # 结果:赵*钱*孙*李*周
3 print(' '.join(name_list))   # 结果:赵 钱 孙 李 周
4 print(''.join(name_list))    # 结果:赵钱孙李周
5 print('__'.join(name_list))  # 结果:赵__钱__孙__李__周

注:可以利用这种方法将一个列表转为字符串格式

七、列表的嵌套

上面说过,列表里可以放一切元素,所以,当然也可以嵌套列表:

如果需要对列表里的列表进行增删改查,只需先索引到里面的列表,然后再进行操作即可,如下:

name_list = ['赵','钱','孙',['付','傅','符'],'李','周','赵']

print(name_list[3][1]) # 傅
print(name_list[3][0:2]) #['付', '傅']

name_list[3][1]= 'fu'
print(name_list)
# 结果为:['赵', '钱', '孙', ['付', 'fu', '符'], '李', '周', '赵']

name_list[3].pop(1)
print(name_list)
#结果为['赵', '钱', '孙', ['付', '符'], '李', '周', '赵']

name_list[3].remove('符')
print(name_list)
#结果为:['赵', '钱', '孙', ['付'], '李', '周', '赵']

强调:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏灯塔大数据

技术 | Python从零开始系列连载(八)

导读 上一期学习了Python特色数据类型(列表)上半节,相信大家都已经熟悉啦,我们这一期就来学习Python特色数据类型(列表)下半节吧! 列表切片 列表切片...

38160
来自专栏Brian

数据分析利器-NumPy

---- 概述 NumPy类库是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list s...

36480
来自专栏Brian

Python 多线程的同步方法

---- 概述 这篇博客是我翻译Python threads synchronization: Locks, RLocks, Semaphores, Condi...

56860
来自专栏Brian

Python Data Model

概述 最近在看《Fluent Python》一书,书中解释了Python很多重要的设计理念和实践,下面是我在看此书的读书笔记。Python的设计思想主要体现在它...

40260
来自专栏Brian

Python GIL

---- 概述 GIL(Global Interpreter Lock)是什么东东?为什么当一些Pythoners在开发一些多线程操作的时候,都会有些很...

45960
来自专栏Brian

CentOS6 Upgrade Python

CentOS6 升级Python2.7.X和Python3.X ---- 简述 由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于cen...

32750
来自专栏Brian

Install Django Nginx uWSGI

概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

42890
来自专栏灯塔大数据

手把手 | 教你用Python创建微信聊天机器人

前言 最近研究微信 API,发现个非常好用的 python 库:wxpy。wxpy 基于 itchat,使用了 Web 微信的通讯协议,实现了微信登录、收发消息...

83460
来自专栏Brian

Install Python3.6.x on CentOS7

---- 概述 在之前的文章中,我已经介绍了在CentOS6中安装Python2.7.x和Python3.4.x。请参考源码编译安装或者升级Python在Cen...

1.2K60
来自专栏互联网杂技

你知道 Python 这五个有趣的彩蛋吗?

当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西。通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生...

31890

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励