Python3实现列表方法的示例详解

python3 列表 序列是python中最基本的数据结构,下面这篇文章主要给大家介绍了关于python3学习笔记之列表方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。

前言

本文主要给大家介绍了关于Python3列表方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

1 使用[]或者list()创建列表

user = []user = list()

登录后复制

2 使用list() 可以将其他类型转换成列表

立即学习“Python免费学习笔记(深入)”;

# 将字符串转成列表>>> 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 "", line 1, in IndexError: list index out of range>>> users[-100]Traceback (most recent call last): File "", line 1, in 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 "", line 1, in IndexError: list assignment index out of range>>> del users[-100]Traceback (most recent call last): File "", line 1, in 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 "", line 1, in 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 "", line 1, in 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 "", line 1, in 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 "", line 1, in ValueError: 'laksdf' is not in list

登录后复制

12 使用in判断值是否存在列表

形式如:value in list

>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']>>> 'wdd' in usersTrue

登录后复制

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实现列表方法的示例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2265982.html

(0)
上一篇 2025年2月27日 09:03:15
下一篇 2025年2月24日 13:30:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python3之简单工厂模式的介绍

    这篇文章主要为大家详细介绍了python3设计模式之简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在Python3环境下,调试实现了《大话设计模式》中简单工厂模式,通过定义单独的工厂类,完成对具体的产品的实例化,参考链接 …

    编程技术 2025年2月27日
    200
  • python实现连接数据库的方法介绍

    这篇文章主要为大家详细介绍了python连接数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 MYSQL模块暂时还不支持python3.0以上的版本,由于我下载的python是3.0版本的,所以想要连接数据库只能利用其它的方法…

    2025年2月27日
    200
  • Python3实现发送QQ邮件功能(附件)_python

    这篇文章主要为大家详细介绍了python3实现发送qq邮件功能,附件方面,具有一定的参考价值,对python3感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python3实现发送QQ邮件功能:附件,供大家参考,具体内容如下 可以成功发送…

    编程技术 2025年2月27日
    200
  • Python3实现发送QQ邮件功能(html)_python

    这篇文章主要为大家详细介绍了python3实现发送qq邮件功能,html格式的qq邮件,具有一定的参考价值,对python3感兴趣的小伙伴们可以参考一下本文,本文为大家分享了python3实现发送qq邮件功能:html,供大家参考,具体内容…

    编程技术 2025年2月27日
    200
  • Python3实现发送QQ邮件功能(文本)_python

    这篇文章主要为大家详细介绍了python3实现发送qq邮件功能,文本方面,具有一定的参考价值,对python3感兴趣的小伙伴们可以参考一下 本文为大家分享了Python3实现发送QQ邮件功能:文本,供大家参考,具体内容如下 注意:使用前需要…

    编程技术 2025年2月27日
    200
  • numpy数组拼接简单示例_python

    这篇文章主要介绍了numpy数组拼接简单示例,涉及对numpy数组的介绍,numpy数组的属性等内容,具有一定借鉴价值,需要的朋友可以参考下。 NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成: ·实际的数据 ·描述这些…

    编程技术 2025年2月27日
    200
  • Python之正弦曲线实现方法分析

    本文主要介绍了python图形绘制操作之正弦曲线实现方法,涉及python使用numpy模块数值运算及matplotlib.pyplot模块进行图形绘制的相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 要画正弦曲线先设定一下x的取值…

    2025年2月27日
    200
  • 微信跳一跳python辅助脚本实例分享

    本文主要为大家整理了关于微信跳一跳的辅助脚本内容,这次我们给大家整理的是关于python的脚本内容,一起来学习下。 这段时间微信跳一跳这个游戏非常火爆,但是上分又非常的难,对于程序员来说第一个念头就是通过写一个辅助脚本外挂让上分变的容易,p…

    2025年2月27日
    200
  • Django基于ORM操作数据库的方法详解

    本文主要和大家介绍了django基于orm操作数据库的方法,结合实例形式总结分析了django使用orm操作数据库的相关配置、增删改查等相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 1、配置数据库 vim settings #He…

    2025年2月27日
    200
  • python通过实例方法名字调用

    本文主要为大家详细介绍了python如何通过实例方法名字调用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 案例:        某项目中,我们的代码使用的2个不同库中的图形类:               Ci…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论