1 列表的定义和创建
定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
列表的创建
#方法一
L1 = [] #定义空列表
L2 = [\'a\',\'b\',\'c\',\'d\'] #存4个值,索引为0-3
L3 = [\'abc\',[\'def\',\'ghi\']] #嵌套列表
#方法二
L4 = list()
2 列表的特点和常用操作
特性: 有序、可变
常用操作:
#1、创建
#方法一
L1 = [] #定义空列表
L2 = [\'a\',\'b\',\'c\',\'d\'] #存4个值,索引为0-3
L3 = [\'abc\',[\'def\',\'ghi\']] #嵌套列表
#方法二
L4 = list()
#2、查询
>>> L2 = [\'a\',\'b\',\'c\',\'d\',\'a\',\'e\',1,2]
>>> L2[2]#通过索引取值
\'c\'
>>> L2[-1]#通过索引从列表右边开始取值
2
>>> L2[-2]
1
>>> L2.index(\'a\')#返回指定元素的索引值,从左右查找,找到第一个匹配值,则返回
0
>>> L2.count(\'a\')#统计指定元素的个数
2
#3、切片
>>> L2 = [\'a\',\'b\',\'c\',\'d\',\'a\',\'e\',1,2]
>>> L2[0:3]#返回从索引0至3的元素,不包括3,顾头不顾尾
[\'a\', \'b\', \'c\']
>>> L2[0:-1]#返回从索引0至最后一个值,不包括最后一个值
[\'a\', \'b\', \'c\', \'d\', \'a\', \'e\', 1]
>>> L2[3:6]#返回从索引3至6的元素
[\'d\', \'a\', \'e\']
>>> L2[3:]#返回从索引3至最后所有的值
[\'d\', \'a\', \'e\', 1, 2]
>>> L2[:3]#返回从0至3的值
[\'a\', \'b\', \'c\']
>>> L2[1:6:2]#返回索引1至6的值,但是步长为6(每隔一个值,取一个值)
[\'b\', \'d\', \'e\']
>>> L2[:]#返回所有的值
[\'a\', \'b\', \'c\', \'d\', \'a\', \'e\', 1, 2]
>>> L2[::2]#按步长为2,返回所有的值
[\'a\', \'c\', \'a\', 1]
#4、增加
>>> L2
[\'a\', \'b\', \'c\', \'d\', \'a\', \'e\', 1, 2]
>>> L2.append(\'A\')#列表最后面追加A
>>> L2
[\'a\', \'b\', \'c\', \'d\', \'a\', \'e\', 1, 2, \'A\']
>>> L2.insert(3,\'B\')#在列表的索引为3的位置,插入一个值B
>>> L2
[\'a\', \'b\', \'c\', \'B\', \'d\', \'a\', \'e\', 1, 2, \'A\']
#5、修改
>>> L2
[\'a\', \'b\', \'c\', \'B\', \'d\', \'a\', \'e\', 1, 2, \'A\']
>>> L2[3] = \'Boy\'#把索引3的元素修改为Boy
>>> L2
[\'a\', \'b\', \'c\', \'Boy\', \'d\', \'a\', \'e\', 1, 2, \'A\']
>>> L2[4:6] = \'ALEX LI\'#把索引4-6的元素改为ALEX LI,不够元素自动增加
>>> L2
[\'a\', \'b\', \'c\', \'Boy\', \'A\', \'L\', \'E\', \'X\', \' \', \'L\', \'I\', \'e\', 1, 2, \'A\']
#6、删除
L2
[\'a\', \'b\', \'c\', \'Boy\', \'A\', \'L\', \'E\', \'X\', \' \', \'L\', \'I\', \'e\', 1, 2, \'A\']
>>> L2.pop()#删除最后一个元素
\'A\'
>>> L2
[\'a\', \'b\', \'c\', \'Boy\', \'A\', \'L\', \'E\', \'X\', \' \', \'L\', \'I\', \'e\', 1, 2]
>>> L2.remove(\'L\')#删除从左找到的第一个指定元素
>>> L2
[\'a\', \'b\', \'c\', \'Boy\', \'A\', \'E\', \'X\', \' \', \'L\', \'I\', \'e\', 1, 2]
>>> del L2[4]#用python的全局的删除方法删除指定元素
>>> L2
[\'a\', \'b\', \'c\', \'Boy\', \'E\', \'X\', \' \', \'L\', \'I\', \'e\', 1, 2]
>>> del L2[3:7]#删除多个元素
>>> L2
[\'a\', \'b\', \'c\', \'L\', \'I\', \'e\', 1, 2]
#7、循环
L2 = [\'a\',\'b\',\'c\',\'d\',\'a\',\'e\',1,2]
for i in L2:
print(i)
#输出
a
b
c
d
a
e
1
2
#8、排序
>>> L2 = [\'a\',\'b\',\'A\',\'C\',\'#\',\'!\',1,2]
>>> L2.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>#不能对包含了str和int的列表进行排序
TypeError: \'<\' not supported between instances of \'int\' and \'str\'
>>> L2 = [\'a\',\'b\',\'A\',\'C\',\'#\',\'!\']
>>> L2.sort()
>>> L2
[\'!\', \'#\', \'A\', \'C\', \'a\', \'b\']
>>> L2.reverse()#反转
>>> L2
[\'b\', \'a\', \'C\', \'A\', \'#\', \'!\']
#9、其他
>>> L2
[\'b\', \'a\', \'C\', \'A\', \'#\', \'!\']
>>> L2.extend([1,2,3,4])#把一个列表,扩展到L2列表
>>> L2
[\'b\', \'a\', \'C\', \'A\', \'#\', \'!\', 1, 2, 3, 4]
>>> L2[2] = [\'Alex\',\'Jack\',\'Rain\']
>>> L2
[\'b\', \'a\', [\'Alex\', \'Jack\', \'Rain\'], \'A\', \'#\', \'!\', 1, 2, 3, 4]
>>> L2[2][2]#嵌套列表取值
\'Rain\'
>>> L2.clear()#清空列表
>>> L2
[]
>>> L2.copy()#后面详细分析