列表(list):列表是有序的,且可以修改
说明:列表里面可以存放:数字、字符串、列表、布尔值,可以嵌套任意类型
列表存放元素的原理:通过链表的方式
1.创建列表:通过list(列表)类,创建了一个test_list的对象
test_list=["Tom","Mary","Jim","Disk"]
2.増加列表元素
test_list=["Tom","Mary","Jim","Disk"]
test_list.append("Yu_disk") 默认把"Yu_disk"放到列表最后面的位置
print(test_list)
"""返回结果
['Tom', 'Mary', 'Jim', 'Disk', 'Yu_disk']
"""
2.1向列表中插入元素
需求:在Jim的前面插入["Sir","lady"]
test_list=["Tom","Mary","Jim","Disk"]
test_list.insert(2,["Sir","lady"])
print(test_list)
"""返回结果
['Tom', 'Mary', ['Sir', 'lady'], 'Jim', 'Disk']
"""
3.删除列表元素
3.1 pop删除方法
test_list=["Tom","Mary","Jim","Disk"]
test_list.pop(0) 通过位置下标来删除列表元素
print(test_list)
"""返回结果
['Mary', 'Jim', 'Disk']
"""
3.2 remove删除方法
test_list=["Tom","Mary","Jim","Disk"]
test_list.remove("Tom") 通过元素名称来删除列表中元素
print(test_list)
"""返回结果
['Mary', 'Jim', 'Disk']
"""
3.3 del删除方法 del是全局参数
test_list = ["Tom", "Mary", "Jim", "Disk"]
del test_list[1] del也是通过列表的位置下标来指定删除的元素
print(test_list)
"""返回的结果
['Tom', 'Jim', 'Disk']
"""
3.3 del 切片删除方法 ,切片的结果也是一个列表
test_list = ["Tom", "Mary", "Jim", "Disk"]
del test_list[:2]
print(test_list)
"""返回结果
['Jim', 'Disk']
"""
4.修改列表元素
test_list=["Tom","Mary","Jim","Disk"]
test_list[0]="Zhangxiaoyu" 通过位置下标来修改列表元素
print(test_list)
"""返回结果
['Zhangxiaoyu', 'Mary', 'Jim', 'Disk']
"""
4.2 把列表中"Mary"元素修改成["disk","Yuxianming"]
test_list=["Tom","Mary","Jim","Disk"]
test_list[1]=["disk","Yuxianming"]
print(test_list)
"""返回结果
['Tom', ['disk', 'Yuxianming'], 'Jim', 'Disk']
"""
4.2切片修改列表元素,切片的结果也是一个列表
test_list=["Tom","Mary","Jim","Disk"]
test_list[0:2]="diskaprt","ceshi"
print(test_list)
"""返回结果
['diskaprt', 'ceshi', 'Jim', 'Disk']
"""
5.查找列表元素
test_list=["Tom","Mary","Jim","Disk"]
print(test_list[:-1])
"""返回结果1
['Tom', 'Mary', 'Jim']
"""
print(test_list[:3])
"""返回结果2
['Tom', 'Mary', 'Jim']
"""
print(test_list[-2:-1])
"""返回结果3
['Jim']
"""
6.for和while循环
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
for index,i in enumerate(complex_list):
print(index,i)
7. in 操作列表
test_list=["Tom","Mary","Jim","Disk"]
v = "yuxianming" in test_list
print(v)
"""返回结果
False
"""
v = "Mary" in test_list
print(v)
"""返回结果
True
"""
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
v = ["ceshi",1,["d","c",10,"11"],True] in complex_list
print(v)
"""返回结果
True
"""
练习
复杂列表,多层嵌套
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
for item in complex_list:
print(item)
"""返回结果
Tom
Mary
['ceshi', 1, ['d', 'c', 10, '11'], True]
Jim
Disk
"""
需求1:查询complx_list表中的元素"c"
print(complex_list[2][2][1])
"""返回结果
c
"""
需求2:查询complx_list表中的元素"ceshi"和1
print(complex_list[2][:2])
"""返回结果
['ceshi', 1]
"""
需求3:删除complx_list表中的元素10,"11"
del complex_list[2][2][2:]
print(complex_list)
"""返回结果
['Tom', 'Mary', ['ceshi', 1, ['d', 'c'], True], 'Jim', 'Disk']
"""
8.转换
8.1字符串转换成列表
str_test="yuxianming_test"
v1=list(str_test)
print(v1)
"""返回结果
['y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
str_test1="1234yuxianming_test"
v2= list(str_test1)
print(v2)
"""返回结果
['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
8.2列表转换成字符串,如果列表当中包含数字和字符串只能自已写for循环,如果列表只包含字符串可以用join把列表转换成字符串
"""注意点:for不能循环数字"""
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
print(str(list_test1))
"""返回结果:还是列表,转换不成功
['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
for循环列表转换成字符串
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
count=""
for i in list_test1:
count=count+str(i)
print(count)
"""返回结果
1234yuxianming_test
"""
join把列表转换成字符串
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
v1="".join(list_test1)
print(v1)
"""返回结果
1234yuxianming_test
"""
以下是list类中提供的11个方法(灰魔法)
1.append 追加元素,把追加的值永远放到最后面
test_list=["Tom","Mary","Jim","Disk"]
test_list.append(123)
test_list.append(["yuxianming","xuhongmei"])
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk', 123, ['yuxianming', 'xuhongmei']]
"""
2. clear 清空列表中的元素
test_list=["Tom","Mary","Jim","Disk"]
test_list.clear()
print(test_list)
"""返回的结果
[]
"""
3. copy 复制列表给新的对象
test_list=["Tom","Mary","Jim","Disk"]
test_list1=test_list.copy()
print(test_list1)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk']
"""
4.count 统计列表元素的个数
test_list=["Tom","Mary","Jim","Disk","Jim"]
v1 = test_list.count("Jim")
print(v1)
"""返回的结果
2
"""
v2=test_list.count("yuxianming")
print(v2)
"""返回的结果
0
"""
5.index 用于从列表中找出某个值第一个匹配项的索引位置。
test_list=["Tom","Mary","Jim","Disk","Jim","Tom","Mary","Jim"]
v1= test_list.index("Jim",3,-1) 从下标3位置开始一直到-1,第1个出现"Jim"的索引位置是4
print(v1)
"""返回的结果
4
"""
6. insert 函数用于将指定对象插入列表的指定位置。
方法:list.insert(index, obj)
test_list=["Tom","Mary","Jim","Disk"]
test_list.insert(1,"中国") 在索引1的前面插入"中国"
print(test_list)
"""返回的结果
['Tom', '中国', 'Mary', 'Jim', 'Disk']
"""
7.pop 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
test_list=['Tom', '中国', 'Mary', 'Jim', 'Disk']
v=test_list.pop(1) 删除索引为1的元素
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk']
"""
print(v) 获取删除的元素
"""返回的结果
中国
"""
test_list.pop() 删除列表中最后一个元素
print(test_list)
"""返回结果
['Tom', 'Mary', 'Jim']
"""
8.remove 函数用于移除列表中某个值的第一个匹配项。
test_list=["Tom","Mary","Jim","Disk","Jim","Tom","Mary","Jim"]
test_list.remove("Jim") 删除列表中第一个出现元素为"Jim"的值
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Disk', 'Jim', 'Tom', 'Mary', 'Jim']
"""
9.reverse 函数用于翻转列表中元素。
test_list=['Tom', 'Mary', 'Jim', 'Disk']
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk']
"""
test_list.reverse()
print(test_list)
"""返回的结果
['Disk', 'Jim', 'Mary', 'Tom']
"""
10.extend 扩展原表 此函数内部使用的原理是for循环
test_list=['Tom', 'Mary', 'Jim', 'Disk']
test_list.extend(["yuxianming","ceshi"])
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk', 'yuxianming', 'ceshi']
"""
test_list=['Tom', 'Mary', 'Jim', 'Disk']
test_list.extend("yuxianming")
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g']
"""
"""注意点
extend 函数是在原表上扩展,而append是追加时是在原表中嵌套列表
"""
test_list.append(["yuxianming","ceshi"])
print(test_list)
"""返回的结果
['Tom', 'Mary', 'Jim', 'Disk', 'yuxianming', 'ceshi', ['yuxianming', 'ceshi']]
"""
11. sort排序,默认为升序排列,也可以指定参数降序排列(reverse=True)
test_list=[11,44,22,33,22]
test_list.sort()
print(test_list) 升序排列
"""返回的结果
[11, 22, 22, 33, 44]
"""
test_list.sort(reverse=True) 降序排列
print(test_list)
"""返回的结果
[44, 33, 22, 22, 11]
"""
sort还有两个参数先欠着(cmp、key)