Python全栈之列表数据类型详解


Posted in Python onOctober 01, 2019

前言

列表(list)同字符串一样都是有序的,因为他们都可以通过切片和索引进行数据访问,且列表是可变的。

创建列表的几种方法

第一种

name_list = ['Python', 'PHP', 'JAVA']

第二种

name_list = list(['Python', 'PHP', 'JAVA'])

创建一个空列表

>>> li = list() 
>>> type(li)
<class 'list'>

把一个字符串转换成一个列表

>>> var="abc"
>>> li = list(var)
>>> li
['a', 'b', 'c']

list在把字符串转换成列表的时候,会把字符串用for循环迭代一下,然后把每个值当作list的一个元素。

把一个元组转换成列表

>>> tup=("a","b","c")
>>> li=list(tup)
>>> type(li)
<class 'list'>
>>> li
['a', 'b', 'c']

把字典转换成列表

>>> dic={"k1":"a","k2":"b","k3":"c"}
>>> li=list(dic)
>>> type(li)
<class 'list'>
>>> li
['k3', 'k1', 'k2']

字典默认循环的时候就是key,所以会把key当作列表的元素

>>> dic={"k1":"a","k2":"b","k3":"c"}
>>> li=list(dic.values())
>>> li
['c', 'a', 'b']

如果指定循环的是values,那么就会把values当作列表的元素

列表所提供的方法

在列表末尾添加新的对象

append(self, p_object):

>>> name_list = ['Python', 'PHP', 'JAVA']
>>> name_list.append("C#")
>>> name_list
['Python', 'PHP', 'JAVA', 'C#']

统计某个元素在列表中出现的次数

count(self, value):

属性 描述
obj 列表中统计的对象
>>> name_list = ['Python', 'PHP', 'PHP']
>>> name_list.count("PHP")
2

用于在列表末尾一次性追加另一个序列中的多个值

extend(self, iterable):

属性 描述
seq 元素列表
>>> name_list = ['Python', 'PHP', 'Python']
>>> name_OS = ['Windows', 'Linux', 'Unix']
>>> name_list
['Python', 'PHP', 'Python']
>>> name_OS
['Windows', 'Linux', 'Unix']
# 把列表`name_OS`中的内容添加到`name_list`的尾部
>>> name_list.extend(name_OS)
# 输出的结果
>>> name_list
['Python', 'PHP', 'Python', 'Windows', 'Linux', 'Unix']

从列表中找出某个值第一个匹配项的索引位置

index(self, value, start=None, stop=None):

属性 描述
value 列表中统计的对象
# 查找对象所在的位置
>>> name_list = ['Python', 'PHP', 'JAVA']
>>> name_list.index("PHP")
1

将指定对象插入列表

insert(self, index, p_object):

属性 描述
index 对象obj需要插入的索引位置
obj 要出入列表中的对象
>>> name_list = ['Python', 'PHP', 'JAVA']
# 把位置`1`的内容换成`C`,后面的自动退格一个位置
>>> name_list.insert(1,"C")
>>> name_list
['Python', 'C', 'PHP', 'JAVA']

移除列表中的一个元素,并且返回该元素的值

pop(self, index=None):

属性 描述
index 可选参数,要移除列表元素的位置
>>> name_list = ['Python', 'PHP', 'JAVA']
# 删除位置1上面的内容,并且返回删除的字符串
>>> name_list.pop(1)
'PHP'
>>> name_list
['Python', 'JAVA']

移除列表中某个值的第一个匹配项

remove(self, value):

属性 描述
value 列表中要移除的对象
>>> name_list = ['Python', 'PHP', 'JAVA', 'Python']
# 每次删除的时候只会把第一次匹配到的值删除,第二个值不会被删除
>>> name_list.remove("Python")
>>> name_list
['PHP', 'JAVA', 'Python']
>>> name_list.remove("Python")
>>> name_list
['PHP', 'JAVA']

当然删除元素还可以直接使用del进行删除:

>>> L = [1,2,3]
>>> del L[1]
>>> L
[1, 3]

又或者使用切片赋值进行元素删除

>>> L = [1,2,3]
>>> L[1:2] = []
>>> L
[1, 3]

反向输出列表中的元素

reverse(self):

>>> name_list = ['Python', 'PHP', 'JAVA']
>>> name_list
['Python', 'PHP', 'JAVA']
>>> name_list.reverse()
>>> name_list
['JAVA', 'PHP', 'Python']

对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

sort(self, cmp=None, key=None, reverse=False):

>>> name_list = ['Python', 'PHP', 'JAVA']
>>> name_list
['Python', 'PHP', 'JAVA']
>>> name_list.sort()
>>> name_list
['JAVA', 'PHP', 'Python']

清除列表内所有元素

>>> li
['Ansheng']
>>> li.clear()
>>> li
[]

同字符串一样,列表也支持解析,称为列表解析

>>> li = [x for x in range(1,20)]
>>> li
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中多线程及程序锁浅析
Jan 21 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
全面分析Python的优点和缺点
Feb 07 Python
wxpython实现图书管理系统
Mar 12 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
Python3中列表list合并的四种方法
Apr 19 Python
python实现自动化上线脚本的示例
Jul 01 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
基于pandas中expand的作用详解
Dec 17 Python
Python-split()函数实例用法讲解
Dec 18 Python
如何用python爬取微博热搜数据并保存
Feb 20 Python
用Python实现Newton插值法
Apr 17 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 #Python
使用Python制作一个打字训练小工具
Oct 01 #Python
Python + Flask 实现简单的验证码系统
Oct 01 #Python
python 矢量数据转栅格数据代码实例
Sep 30 #Python
python多进程间通信代码实例
Sep 30 #Python
Python实现二叉树的最小深度的两种方法
Sep 30 #Python
python打开使用的方法
Sep 30 #Python
You might like
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python中的变量和作用域详解
2016/07/13 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
小学校园活动策划
2014/01/30 职场文书
医院保洁员管理制度
2015/08/05 职场文书
学风建设主题班会
2015/08/17 职场文书
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js