数据类型之列表类型(list)
列表可以包含任何种类的对象:数字、字符串甚至其他里列表。与字符串不同。列表都是可变对象,他们都支持在原位置修改和查阅等操作。列表也是Python中的基本数据结构。序列中的每个元素都分配一个数字(它的位置或者索引),列表的索引同其他字符串等其他数据类型表示索引的方式相同都是从0开始的,并一次类推。
Python中的列表类似于C语言中的数组,但是不同之处在于列表中的数据类型可以包含任何类型的元素,但是数组只能包含数字或者说是数值类型的数字。列表最常用的操作方式和字符串一样,也有增删改查的操作,列表是一种有序集合,后面会学到集合这种数据类型,就会看到他们的不同。
=============================================================================
小贴士:
所谓的数据类型并不神秘。我们知道计算机运行的逻辑:计算机程序 = 数据 + 代码。之所以我们要学这些数据类型,是因为自然界中的数据纷繁复杂,我们只有把那些数据归为一类,另外一些数据归为另一类,这样分门别类的方式进行数据分析,才能够更有效率,也不至于混乱,以至于我们要把数据类型进行分类也就是这个目的。
============================================================================
另外,给大家介绍一种规范,如果列表当中只有一个元素的时候,比如[100, ],最好在100的后面加一个逗号。目的是以免误解成数学计算意义上的括号。
=============================================================================
小贴士:
所谓规范,在大多数编程语言中都存在。有些编程规范是经过国家认定的,比如C语言的C11(规范代码GBT 28169-2011),另外还有一些规范是社会或团体组织对一门语言提供一个编程的规范,目的是让你的程序更加可读、方便维护和有利于供更广泛的人群阅读。Python的规范是PEP8,英文是Python Enhancement Proposal,中文翻译过来是增强建议书。这些所谓的规范有些并不是强制性的,目的是为了让大家统一编程的习惯。在PyCharm中,在编写代码的时候会有一些下划波浪线的提示,有些时候即使提示也不会影响代码的正常运行。这就是非强制性规范,但是并不符合PEP8的要求。
============================================================================
第一部分:列表的简单应用
1. 创建列表
格式:列表名 = [列表选项1,列表选项2,列表选项n]
我们试着来创建一个简单的空列表
..........................................................................................................................................
list1 = []
...........................................................................................................................................
2. 列表的常规操作
2.1 列表元素的访问
同字符串一样通过下标来访问
2.2 列表元素的改变
通过下标的方式更改列表中的某个值
2.3 列表元素的删除
通过下标的方式删除列表中的某个值
2.4 列表的组合
通过加号来组合列表(和字符串的操作一样)
2.5 列表的重复
通过*好来重复列表(和字符串的操作一样)
2.6 判断元素是否在列表中(和字符串的操作一样)
返回值为False和True,也是用成员运算符合身份运算符进行操作。
2.7 列表的切片(和字符串切片原理相同)
格式[[start],[,end],[,step]] ,分别表示:开始位置,结束位置,步长。
注意:几到几的指针是放到元素的前面
2.8 二维列表和多维列表
二维列表和多维列表也可以通过列表的方式进行表示。二维列表可以理解为二维矩阵,访问和修改是通过双下标的方式。三位以上的列表是通过多下标进行访问和修改操作的。
=============================================================================
小贴士:
在《量化数据科学手册》中我们会学到一种更方便的多维数据表示方式,利用Numpy三方库来实现,在大数据分析中我们会经常使用到这个Numpy三方库。
============================================================================
第二部分:列表常用的内建函数
列表和字符串一样,也有非常多的内建函数。下面列举有些列表操作中常用的内建函
数。
1. append
函数:append
语法:append(x)
用法:在列表末尾添加一个新的元素的第一个“元素”
2. extend
函数:extend
语法:extend([list])
用法:在列表末尾一次性追加一个列表中的多个值
3. insert
函数:insert
语法:insert([index] [,x])
用法:将数据添加到任意一个位置,在下标处添加一个元素,不覆盖原数据,原数据顺向后延。
4. pop、del
函数:pop、del
语法:pop([index])、del list[index]
用法:移除列表中下标处的元素(默认移除最后一个元素[-1]),并返回删除后的数据;删除列表规定下标的某一个元素。
5. remove
函数:remove
语法:remove(x)
用发:移除remove指定的元素、只能删除一个,估计当初设计整个函数的时候为了防止误删,所以只能删除一个
6. clear
函数:clear
语法:clear()
用法:清除列表中的所有元素
7. index
函数:index
语法:index(x [,start] [,end])
用法:从列表中找出某个值的第一个匹配的索引值
8. len
函数:len
语法:len(list)
用法:获取列表的长度
9. max、min
函数:max、min
语法:max(list)、min(list)
用法:获取列表中的最大值、获取列表中的最小值
10. count
函数:count
语法:count(x)
用法:统计某个元素在列表中出现的次数
11. reverse
函数:reverse
语法:reserve()
用法:列表中的元素进行反转操作
12. sort
函数:sort
语法:sort(list, key =, reverse = false/true)
用:默认为升序排列的排序方式,其中key可以按照某个键值方式进行排序,reverse可以调用逆序排序。