一、初识列表
字符串的缺点:
1、只能存储少量的数据
2、切片出的固定是字符串类型
列表的是以中括号组成,每个元素以逗号隔开的容器类的数据类型,它是一个有序的可以存储大量的数据的数据类型。
二、列表的切片
l1 = ['太白', 100, 'alex', '日天', '武大', '吴老师', '景女神'] print(l1[:5:2])
列表的切片同字符串的切片。可从左往右且也可倒着切,可以设置步长。
三、列表的常用操作
增:
1、append
append可以在列表的最后加入元素(数字、列表、字符串都可以),也就是追加。由于只能在最后添加,append的速度是最快的,因而最常用。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.append('alex') l1.append(100) l1.append([1, 2, 3]) print(l1)
2、insert
insert可以在指定索引处添加元素,后面的按序后移。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.insert(1,'小潘')
3、extend
extend的作用是在列表的最末尾迭代添加。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.extend('alex')
删:
1、pop
pop可以按照索引删除列表里的元素,是列表方法里唯一一个有返回值的,返回值就是删除的值。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] ret = l1.pop(0)
2、remove
remove可以按照元素删除。若该元素在列表内有多个,则删除最左边的。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] ret = l1.remove('武大')
3、clear
clear清空列表。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.clear()
4、del
del可以按索引删除,也可以按切片删除,还可以将列表整个删除。
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] del l1[-2] del l1[::2] del l1
改:
1、直接取该元素替换掉
l1 = ['alex', '太白', '吴老师', '景女神', '武大']
print(l1[0])
2、切片改
l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1[:3] = 'abcdefghigk'
需要注意的是当设定步长时切片操作替换掉几个元素就要加入几个元素。
查:
可以用索引也可以用切片。
其他方法:
1、len:获取列表元素的总个数
l1 = ['武大', '太白', '吴老师', '武大', '武大'] print(len(l1))
2、count:计算某个元素出现的次数
l1 = ['武大', '太白', '吴老师', '武大', '武大'] print(l1.count('武大'))
3、index:通过元素找索引,找不到会报错
l1 = ['武大', '太白', '吴老师', '武大', '武大'] print(l1.index('太白'))
4、sort:排序
l1 = ['武大', '太白', '吴老师', '武大', '武大'] l1.sort(reverse=True)
sort默认是从小到大排序,设置reverse=True时就变成由大到小排序。
四、列表的嵌套
''' 1, 将l1中的'taibai'变成大写并放回原处。 2,给小列表[1,'alex',3,]追加一个元素,'老男孩教育'。 3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb' ''' l1 = [1, 2, 'taibai', [1, 'alex', 3, ]] l1[2] =l1[2].upper() l1[3].append('老男孩教育') l1[3][1] += 'sb' print(l1)
五、元组
元组又叫只读元组,它只能进行索引切片,不能增改,但这里的“不能改”只针对于第一级的元素。
tu1 = (1, 'alex', [1,2,3], True) for i in tu1: print(i) del tu1 print(tu1)
六、range
rang多与for循环搭配使用,顾头不顾尾,从零开始可以省略,也可以设置步长。
l1 = ['无sir', 'alex', '太白', 100, 1, 2, 3] for i in range(len(l1)): print(i)