前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。
前面还学习了变量,如果某个变量跟一个int类型的数据用线连着(行话是:赋值),那么这个变量我们就把它叫做int类型的变量;有时候还没赋值呢,是准备让这个变量接收int类型的数据,我们也需要将它声明为int类型的变量。不过,在python里面有一样好处,变量不用提前声明,随用随命名。
这一讲中的list类型,也是python的一种数据类型。
LIST在python中具有非常强大的功能。
定义
在python中,用方括号表示一个list,[ ]
在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。
定义一个列表
>>> names = ['zhangqiang','wangzhaoyang','lilei']
通过下标访问列表中的元素,下标从0开始计数
>>> names[0]
'zhangqiang'
>>> names[1]
'wangzhaoyang'
>>> names[2]
'lilei'
>>> names[-2]####还可以倒着取
'wangzhaoyang'
>>> names[-3]
'zhangqiang'
>>> names[-1]
列表切片
>>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom'] >>> names[1:4] ####左开右闭 ['wangzhaoyang', 'lilei', 'jack'] >>> names[1:-1] ['wangzhaoyang', 'lilei', 'jack'] >>> names[0:4] ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack'] >>> names[:4] ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack'] >>> names[0:] ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom'] >>> names[0::2] ##后面的2是代表步长,每隔一个元素,就取一个
['zhangqiang', 'lilei', 'tom'] >>> names[::2] ['zhangqiang', 'lilei', 'tom']
追加
>>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom'] >>> names.append('zhangliang') >>> names ['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom', 'zhangliang']
插入
>>> names.insert(2,'zhangyang') >>> names ['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang'
修改
>>> names ['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang'] >>> names[1]= 'ligang' >>> names ['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
删除
>>> names ['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang'] >>> del names[0] >>> names ['ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
>>> names.remove('zhangyang') #删除执行元素
>>> names
['ligang', 'lilei', 'jack', 'tom', 'zhangliang']
>>> names.pop() #删除最后一个
'zhangliang'
>>> names
['ligang', 'lilei', 'jack', 'tom']
扩展
>>> names = ['ligang', 'lilei', 'jack', 'tom'] >>> list1 = [1,2,3,4] >>> names.extend(list1) >>> names ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4]
拷贝
深拷贝和浅拷贝
统计
>>> names ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5]>>> names.count(1) 2
排序
>>> names ['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5] >>> names.sort() # 不同数据类型不能放在一起排序 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '<' not supported between instances of 'int' and 'str'
>>> names[4]='1'
>>> names[5]='2'
>>> names[6]='3'
>>> names
['jack', 'ligang', 'lilei', 'tom', '1', '2', '3']
>>> names.sort()
>>> names
['1', '2', '3', 'jack', 'ligang', 'lilei', 'tom']
反转
>>> names.reverse() >>> names ['tom', 'lilei', 'ligang', 'jack', '3', '2', '1']
获取下表
>>> names ['tom', 'lilei', 'ligang', 'jack', '3', '2', '1'] >>> names.index('ligang') 2
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
test_tuple = ('tom', 'lilei', 'ligang', 'jack','tom')
它只有2个方法,一个是count,一个是index,
>>> test_tuple.count("tom") 2 >>> test_tuple.index("tom") 0