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中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
python使用socket连接远程服务器的方法
Apr 29 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
如何用python写个模板引擎
Jan 14 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 Python
深入理解pytorch库的dockerfile
Jun 10 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
解决cPanel无法安装php5.2.17
2014/06/22 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
Javascript调用C#代码
2011/01/17 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python中的字典遍历备忘
2015/01/17 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python中str.format()详解
2017/03/12 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Pandas分组与排序的实现
2019/07/23 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
聊城大学毕业生自荐书
2014/02/01 职场文书
财务内勤岗位职责
2014/04/17 职场文书
生产助理岗位职责
2014/06/18 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
行为规范主题班会
2015/08/13 职场文书
交通安全教育心得体会
2016/01/15 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
Python加密与解密模块hashlib与hmac
2022/06/05 Python