Python列表详解
列表的特征
- 列表使用中括号括起来;
- 列表是有序的,列表的元素可以被修改;
- 列表在内存中实际上是一个链形的存储结构,上一个内容里指向了下一个内容的内存地址;
- 列表的中括号内的内容以逗号分隔,每两个逗号间是一个整体;
- 内容可以是数字、字符串、列表、布尔值,所有的类都可以放进列表,列表是一个集合;
- 列表中可以嵌套列表,列表可以无限嵌套列表;
- 列表可以使用索引取值;
例一:print(test[3:6]) # 取test列表里的范围X(3 <= X < 6)的值;
例二:print(test[3]) #取test列表里的第三个索引的值;
例三:嵌套索引取值:找到列表中子列表的子列表的数字
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
v = ha[4][1][0]
print(v)
- 列表可以支持for循环;
- 列表可以支持while循环;
- 列表元素可以被修改;
例一:修改某个内容
ha = [1,2,3,"hello",[1,3,5],"good"]
ha[1] = 5
print(ha)
例二:通过切片的方式修改某几个内容
ha = [1,2,3,"hello",[1,3,5],"good"]
ha[1:3] = 9,["thanks","you"]
print(ha)
例三:删除某个内容
ha = [1,2,3,"hello",[1,3,5],"good"]
del ha[1]
print(ha)
例四:通过切换方式删除某几个内容
ha = [1,2,3,"hello",[1,3,5],"good"]
del ha[1:3]
print(ha)
- 列表支持in操作
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
for x in ha
print(x)
字符串和列表的互相转换
- 对于字符串想转换列表,可以直接转换(内部使用了for循环);
haha = "sjdfjskldfjsdfjlsdjfksdfwperiuowep"
haha = list(haha)
print(haha)
- 对于既有数字又有字符串的列表要转换成字符串,需要自己写for循环;
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
s = ""
for x in ha
s = s + str(x)
print(s)
- 对于只有字符串的列表要转换成字符串,可以使用简单办法,通过join方法;
ha = ["1","2","3","hello","good"]
s = "".join(ha)
print(s)
List功能详解
- 需求一:在原值后追加(参数是一个整体,将追加的参数整体增加到原值后)
test = [11,22,33,44]
test.append(5)
print(test)
- 需求二:清空列表
test = [11,22,33,44]
test.clear()
print(test)
- 需求三:拷贝--浅拷贝
test = [11,22,33,44]
v = test.copy()
print(v)
- 需求四:计算列表中某一个元素出现的次数
test = [11,22,33,44]
v = test.count(22)
print(v)
- 需求五:扩展原来的列表(参数是可迭代对象,依次循环每一个参数增加到原列表)
test = [11,22,33,44]
v = test.extend([6565,"加油"])
print(v)
- 需求六:根据值去找值的索引,从左往右找,找到以后就停止继续寻找,参数中的寻找范围定义的是一个左开右闭的区间;
test = [11,22,33,22,44]
v = test.index(22,3,4)
print(v)
- 需求七:在指定的索引位置插入元素
test = [11,22,33,44]
test.insert(0,99)
print(test)
- 需求八:删除某个值,并获取当前值(默认情况删除最后一个元素),也可根据索引删除某个值
test = [11,22,33,44]
v = test.pop()
print(test)
print(v)
test = [11,22,33,44]
v = test.pop(1)
print(test)
print(v)
- 需求九:删除列表中的指定值,从左往右删除,遇到可以删除对象后停止删除
test = [11,22,33,22,44]
test.remove(22)
print(test)
其他的删除方法还有:pop remove del
- 需求十:将当前列表进行反转
test = [11,22,33,22,44]
test.reverse()
print(test)
- 需求十一:排序,默认从小到大,有reverse的时候是从大到小
test = [66,88,11,22,33,22,]
test.sort()
print(test)
test = [66,88,11,22,33,22,]
test.sort(reverse=True)
print(test)