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 socket 超时设置 errno 10054
Jul 01 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
python根据日期返回星期几的方法
Jul 06 Python
Django中处理出错页面的方法
Jul 15 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
python列表,字典,元组简单用法示例
Jul 11 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
关于numpy数组轴的使用详解
Dec 05 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
python函数map()和partial()的知识点总结
May 26 Python
详解Django中异步任务之django-celery
Nov 05 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 正则 过滤html 的超链接
2009/06/02 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHP 代码规范小结
2012/03/08 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
python实现数据图表
2017/07/29 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
温馨提示标语
2014/06/26 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
药品开票员岗位职责
2015/04/15 职场文书
导游词之西安大清真寺
2019/12/17 职场文书