前言

本文主要给大家介绍了关于Python3列表方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
1 使用[]或者list()创建列表
user = [] user = list()
2 使用list() 可以将其他类型转换成列表
# 将字符串转成列表
>>> list('abcde')
['a', 'b', 'c', 'd', 'e']
# 将元祖转成列表
>>> list(('a','b','c'))
['a', 'b', 'c']
3 使用[offset]获取元素 或 修改元素
>>> users = ['a','b','c','d','e'] # 可以使用整数来获取某个元素 >>> users[0] 'a' # 可以使用负整数来表示从尾部获取某个元素 >>> users[-1] 'e' # 数组越界会报错 >>> users[100] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> users[-100] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range # 修改某个元素 >>> users[0] = 'wdd' >>> users ['wdd', 'b', 'c', 'd', 'e'] >>>
4 列表切片与提取元素
列表的切片或者提取之后仍然是一个列表
形式如:list[start:end:step]
>>> users ['wdd', 'b', 'c', 'd', 'e'] # 正常截取 注意这里并不会截取到users[2] >>> users[0:2] ['wdd', 'b'] # 也可从尾部截取 >>> users[0:-2] ['wdd', 'b', 'c'] # 这样可以获取所有的元素 >>> users[:] ['wdd', 'b', 'c', 'd', 'e'] # 也可以加上步长参数 >>> users[0:4:2] ['wdd', 'c'] # 也可以通过这种方式去将列表取反 >>> users[::-1] ['e', 'd', 'c', 'b', 'wdd'] # 注意切片时,偏移量可以越界,越界之后不会报错,仍然按照界限来处理 例如开始偏移量如果小于0,那么仍然会按照0去计算。 >>> users ['wdd', 'b', 'c', 'd', 'e'] >>> users[-100:3] ['wdd', 'b', 'c'] >>> users[-100:100] ['wdd', 'b', 'c', 'd', 'e'] >>>
5 使用append()添加元素至尾部
形式如:list.append(item)
>>> users
['wdd', 'b', 'c', 'd', 'e']
>>> users.append('ddw')
>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw']
6 使用extend()或+=合并列表
形式如:list1.extend(list2)
这两个方法都会直接修改原列表
>>> users ['wdd', 'b', 'c', 'd', 'e', 'ddw'] >>> names ['heihei', 'haha'] >>> users.extend(names) >>> users ['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha'] >>> users += names >>> users ['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']
7 使用insert()在指定位置插入元素
形式如:list.insert(offset, item)
insert也不存在越界的问题,偏移量正负都行,越界之后会自动伸缩到界限之内,并不会报错
>>> users ['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha'] >>> users.insert(0,'xiaoxiao') >>> users ['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha'] >>> users.insert(-1,'-xiaoxiao') >>> users ['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha'] # 下面-100肯定越界了 >>> users.insert(-100,'-xiaoxiao') >>> users ['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha'] # 下面100也是越界了 >>> users.insert(100,'-xiaoxiao') >>> users ['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
8 使用del删除某个元素
形式如:del list[offset]
del是python的语句,而不是列表的方法,del删除不存在的元素时,也会提示越界
>>> users ['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao'] >>> del users[0] >>> users ['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao'] >>> del users[100] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range >>> del users[-100] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range
9 使用remove删除具有指定值的元素
形式如:list.remove(value)
>>> users
['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
# 删除指定值'c'
>>> users.remove('c')
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
# 删除不存在的值会报错
>>> users.remove('alsdkfjalsdf')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
# 如果该值存在多个,那么只能删除到第一个
>>> users.remove('haha')
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
10 使用pop()方式返回某个元素后,并在数组里删除它
形式如:list.pop(offset=-1) 偏移量默认等于-1,也就是删除最后的元素
>>> users ['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao'] # 删除最后的元素 >>> users.pop() '-xiaoxiao' >>> users ['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha'] # 如果列表本身就是空的,那么pop时会报错 >>> user.pop(0) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop from empty list >>> users.pop(0) 'xiaoxiao' >>> users ['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha'] # 越界时也会报错 >>> users.pop(100) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range
11 使用index()查询具有特定值的元素位置
形式如:list.index(value)
# index只会返回第一遇到该值得位置
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> users.index('heihei')
5
# 如果该值不存在,也会报错
>>> users.index('laksdf')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'laksdf' is not in list
12 使用in判断值是否存在列表
形式如:value in list
>>> users ['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha'] >>> 'wdd' in users True
13 使用count()记录特定值出现的次数
形式如:list.count(value)
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> users.count('heihei')
2
>>> users.count('h')
0
14 使用join()将列表转为字符串
形式如:string.join(list)
>>> users ['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha'] >>> ','.join(users) 'wdd,b,d,e,ddw,heihei,heihei,-xiaoxiao,haha' >>> user [] >>> ','.join(user) ''
15 使用sort()重新排列列表元素
形式如:list.sort()
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
# 默认是升序排序
>>> users.sort()
>>> users
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
# 加入reverse=True, 可以降序排序
>>> users.sort(reverse=True)
>>> users
['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao']
# 通过匿名函数,传入函数进行自定义排序
>>> students
[{'name': 'wdd', 'age': 343}, {'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}]
>>> students.sort(key=lambda item: item['age'])
>>> students
[{'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}, {'name': 'wdd', 'age': 343}]
>>> students.sort(key=lambda item: item['age'], reverse=True)
>>> students
[{'name': 'wdd', 'age': 343}, {'name': 'jik', 'age': 90}, {'name': 'ddw', 'age': 43}]
>>>
16 使用reverse()将列表翻转
形式如:list.reverse()
>>> users ['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao'] >>> users.reverse() >>> users ['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
17 使用copy()复制列表
形式如:list2 = list1.copy()
list2 = list1 这种并不是列表的复制,只是给列表起了别名。实际上还是指向同一个值。
>>> users ['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd'] >>> users2 = users.copy() >>> users2 ['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd'] >>>
18 使用clear()清空列表
形式如: list.clear()
>>> users2 ['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd'] >>> users2.clear() >>> users2 []
19 使用len()获取列表长度
形式如:len(list)
>>> users ['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd'] >>> len(users) 9
20 关于列表越界的深入思考
写了这些方法后,我有一些疑问,为什么有些操作会提示越界,有些则不会呢?
会提示偏移量越界的操作有
list[offset] 读取或者修改某个元素del list[offset] 删除指定位置的元素list.remove(value) 删除指定值的元素list.pop(offset) 删除指定位置的元素如果偏移量越界,这些方法会报错的。我的个人理解是:
假如我想读取偏移量为10的元素,但是该元素并不存在,如果系统自动给你读取了列表的最后一个元素,而且不报错,这是无法容忍的bug。 如果我想删除第10个元素,但是第10个元素并不存在,而系统帮你删除了列表的最后一个元素,我觉得这也是无法容忍的。
所以在使用这些方法时,务必确认该偏移量的元素是否存,否则可能会报错。
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
# python3
# 列表
# python
# 列表方法
# 列表排序
# Python3 把一个列表按指定数目分成多个列表的方式
# Python3 列表
# 数组
# 矩阵的相互转换的方法示例
# Python3列表内置方法大全及示例代码小结
# Python3中列表list合并的四种方法
# Python3中的列表生成式、生成器与迭代器实例详解
# Python3实现的字典、列表和json对象互转功能示例
# python3 判断列表是一个空列表的方法
# Python3中的列表
# 元组
# 字典
# 字符串相关知识小结
# Python3基础之list列表实例解析
# Python3列表List入门知识附实例
# 报错
# 偏移量
# 也会
# 不存在
# 我想
# 元祖
# 可以使用
# 转成
# 是一个
# 这是
# 定值
# 升序
# 也不
# 给你
# 相关内容
# 我觉得
# 多个
# 我有
# 说了
# 不多
相关文章:
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
太原网站制作公司有哪些,网约车营运证查询官网?
如何用美橙互联一键搭建多站合一网站?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何在万网自助建站平台快速创建网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何制作算命网站,怎么注册算命网站?
已有域名和空间如何快速搭建网站?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何选择高效响应式自助建站源码系统?
如何通过NAT技术实现内网高效建站?
如何在橙子建站中快速调整背景颜色?
如何配置IIS站点权限与局域网访问?
如何高效搭建专业期货交易平台网站?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
香港服务器部署网站为何提示未备案?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在企业微信快速生成手机电脑官网?
如何通过WDCP绑定主域名及创建子域名站点?
家具网站制作软件,家具厂怎么跑业务?
全景视频制作网站有哪些,全景图怎么做成网页?
黑客入侵网站服务器的常见手法有哪些?
网站制作需要会哪些技术,建立一个网站要花费多少?
网页设计与网站制作内容,怎样注册网站?
制作网站公司那家好,网络公司是做什么的?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何通过西部建站助手安装IIS服务器?
seo网站制作优化,网站SEO优化步骤有哪些?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何用AWS免费套餐快速搭建高效网站?
如何在Golang中指定模块版本_使用go.mod控制版本号
网站制作软件有哪些,制图软件有哪些?
建站之星导航配置指南:自助建站与SEO优化全解析
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
html制作网站的步骤有哪些,iapp如何添加网页?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
简历在线制作网站免费版,如何创建个人简历?
c++怎么用jemalloc c++替换默认内存分配器【性能】
建站OpenVZ教程与优化策略:配置指南与性能提升
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
*请认真填写需求信息,我们会在24小时内与您取得联系。