–本篇主要讲述 Python数据类型之:列表–
“优雅” “明确” “简单”
Python
Python中的数据类型:列表。并且列表数据类型支持原位改变。
以方括号 [ ]
括起来,每个数据之间使用英文的逗号 ‘,’ 进行分隔的形式书写的字面值在Python中为列表数据类型。形如:
在Python中,列表数据类型英文称作:“ list ”。
相关的方法等示例展示,均以Python的交互式环境演示为主!
列表数据类型的特性
- 任意对象的有序集合;
- 通过索引下标访问元素(第一个索引是0,第二个索引是1,依次类推);
- 可变长度;
- 属于可变序列;
列表数据类型的声明方式
使用基本形式方括号
[ ]
定义123>>> L = ['a', 'b', 'c', 1, 2, 3]>>> type(L)<class 'list'>list( )
使用 list 构造函数构造列表12345678910>>> l = list(('xyz', 'abc'))>>> l['xyz', 'abc']>>> type(l)<class 'list'>>>> L = list('abc')>>> L['a', 'b', 'c']>>> type(L)<class 'list'>列表推导
12345>>> l = [x**2 for x in range(5)]>>> l[0, 1, 4, 9, 16]>>> type(l)<class 'list'>
基本操作
+
加法操作,列表之间的组合1234>>> L = ['a', 'b', 'c']>>> l = [1,2,3]>>> L + l['a', 'b', 'c', 1, 2, 3]*
重复操作,列表内元素的重复123>>> L = ['a', 'b', 'c']>>> L * 5['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']len( )
计算列表长度(相当于列表内元素个数)123>>> L = ['a', 'b', 'c']>>> len(L)3[ ]
通过索引获取列表内指定索引处的元素123>>> L = ['a', 'b', 'c']>>> L[1]'b'list[x:y:z]
列表的切片操作(索引由左至右,从0开始)
x:为切片起始索引
y:为切片结束索引(结果不包含y索引位置的值)
z:切片操作的步长1234567891011>>> L = [1,2,3,4,5,6,7,8,9,10]>>> L[3:5][4, 5]>>> L[-1]10>>> L[:][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> L[::2][1, 3, 5, 7, 9]>>> L[::-1][10, 9, 8, 7, 6, 5, 4, 3, 2, 1]in
成员运算符 - 判断指定元素是否存在于列表内,存在则为 True, 反之为 False12345>>> L = ['a', 'b', 'c']>>> 'a' in LTrue>>> 'x' in LFalsenot in
成员运算符 - 判断指定元素是否存在于列表内,不存在则为 True, 反之为 False12345>>> L = ['a', 'b', 'c']>>> 'x' not in LTrue>>> 'a' not in LFalse
列表数据类型的常见内建函数
append( )
在列表末尾添加新的对象123456789>>> l = ['a', 'b']>>> l.append('c')>>> l['a', 'b', 'c']>>> l = ['a', 'b', 'c']>>> b = [1, 2, 3]>>> l.append(b)>>> l['a', 'b', 'c', [1, 2, 3]]clear( )
清空列表中所有的元素1234>>> l = ['a', 1, 2, 'b']>>> l.clear()>>> l[]copy( )
复制列表123456>>> l = ['a', 1, 2, 'b']>>> s = l.copy()>>> s['a', 1, 2, 'b']>>> l['a', 1, 2, 'b']count( )
统计列表中某元素出现的次数1234567>>> l = ['a', 'b', 'a', 'c', 'b']>>> l.count('a')2>>> l.count('b')2>>> l.count('c')1extend( )
在列表末尾一次性追加另一个序列中的多个值(可用新列表扩展原来的列表)12345>>> l = ['a', 'b', 'c']>>> b = [1, 2, 3]>>> l.extend(b)>>> l['a', 'b', 'c', 1, 2, 3]index( )
从列表中找出某个值第一个匹配项的索引位置(可指定寻找的起止索引位置)123456789>>> l = ['a', 'b', 1, 'c', 2, 3]>>> l.index('b')1>>> l.index('b', 2, 4)Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: 'b' is not in list>>> l.index('b', 1, 4)1insert( )
在列表中的指定位置处,插入某个对象1234>>> l = ['a', 'b', 'c', 'd']>>> l.insert(1, [1, 2, 3])>>> l['a', [1, 2, 3], 'b', 'c', 'd']pop( )
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值12345678910111213>>> l = [1, 2, 3, 4, 5]>>> p = l.pop()>>> p5>>> l[1, 2, 3, 4]>>> s = l.pop(2)>>> s3>>> l[1, 2, 4]>>> l.pop(1)2remove( )
移除列表中某个值的第一个匹配项1234>>> l = ['hello', 'new year', 'all world', 'new year']>>> l.remove('new year')>>> l['hello', 'all world', 'new year']reverse( )
反向重新排序列表中元素1234>>> l = [1, 'hello', 'new year', 'all world', 'new year', 10]>>> l.reverse()>>> l[10, 'new year', 'all world', 'new year', 'hello', 1]sort( )
对列表进行排序(也可在排序后进行反向排序)12345678>>> l = [9, 1, 2, 6, 100, 3, 7, 5]>>> l.sort()>>> l[1, 2, 3, 5, 6, 7, 9, 100]>>> l = [9, 1, 2, 6, 100, 3, 7, 5]>>> l.sort(reverse=True)>>> l[100, 9, 7, 6, 5, 3, 2, 1]
更多关于列表数据类型的内建函数方法,可在 Python 交互式环境下,使用:
help(list)
进行查看,或查阅官方文档:Python 官方文档。