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的Twisted框架编写非阻塞程序的代码示例
May 25 Python
python自带的http模块详解
Nov 06 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
python使用xslt提取网页数据的方法
Feb 23 Python
numpy matrix和array的乘和加实例
Jun 28 Python
python3中函数参数的四种简单用法
Jul 09 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
手写一个python迭代器过程详解
Aug 27 Python
Python实现不规则图形填充的思路
Feb 02 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
Python编程根据字典列表相同键的值进行合并
Oct 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
人大复印资料处理程序_输入篇
2006/10/09 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php日历制作代码分享
2014/01/20 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
python怎么判断素数
2020/07/01 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
大四学年自我鉴定
2013/11/13 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
授权委托书样本
2014/04/03 职场文书
队名及霸气口号大全
2015/12/25 职场文书