列表
- 如何定义一个列表
代码段1:
student1 = "maruipeng"
student2 = "sunchangxuan"
student3 = "chenyijie"
student4 = "LiZheRui"
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
print(names)
names2 = [student1,student2,student3,student4]
print(names2)
scores = [99,98,97,89]
print(scores)
运行结果:
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
[99, 98, 97, 89]
- 如何访问列表中的元素
1.通过索引的方式来访问,访问方式:列表[索引],索引是从0开始,编程中所有的索引基本都是从0开始数的,包括其他编程语言。
2.元素里面是什么类型,就可以使用这个类型所有的方法(可以像使用变量一样使用这个表中的各个值)
3.不能访问超出索引范围的数据,否则会报错list index out of range
4.错误会导致程序运行崩溃
list[index].title()
代码段1:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
print(names[3].upper())
print(names[3])
运行结果:
LIZHERUI
LiZheRui
- 倒数访问列表——截取子列表的几种方式
代码段1:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
print(names[-1])
运行结果:LiZheRui
可以发现names[3]==names[-1],即可以通过倒序的方式将内容输出出来
注意:输入倒序的负数下标也需要存在!不能不存在,否则依旧报错。
代码段2:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
l2 = names[0:3]#包含开始索引,不包括结束索引,所以只截取了前三个数据
print(l2)
l3 = names[0:4]#包含开始索引,不包括结束索引,所以截取了全部的四个数据
print(l3)
#列表的一些特殊的用法
#不写开头索引,默认从第一个元素开始截取列表中的元素
l4 = names[:4]
print(l4)
#不写结尾索引,默认从指定元素开始截取到末尾
l5 = names[1:]
print(l5)
#开头结尾都不写,相当于从开头截取到末尾,等于复制了整个列表
l6 = names[:]
print(l6)
运行结果:
['maruipeng', 'sunchangxuan', 'chenyijie']
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
['sunchangxuan', 'chenyijie', 'LiZheRui']
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
小结:
取得子列表(截取里面的一部分元素):list[startindex,endindex]
只包含开始索引,不包含结束索引元素:list[:2] list[2:] list[:]
- 列表中元素的增、删、改、查
1.修改列表元素的代码段:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
names[1]="MaHaoyuan"
print(names)
运行结果:['maruipeng', 'MaHaoyuan', 'chenyijie', 'LiZheRui']
2.增加列表元素的代码段:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
names.append("ZhangWanjing")
print(names)
运行结果:['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui', 'ZhangWanjing']
3.向列表中插入元素的代码段:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
names.insert(2,"Zhangwanjing")
print(names)
运行结果:['maruipeng', 'sunchangxuan', 'Zhangwanjing', 'chenyijie', 'LiZheRui']
4.删除列表中的元素代码段:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
del(names[2])
print(names)
运行结果:['maruipeng', 'sunchangxuan', 'LiZheRui']
注意:删除方法有另外一种写法 del names[2]
删除列表中的元素代码段:
names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]
del(names[2])
del names[2]
print(names)
运行结果:['maruipeng', 'sunchangxuan']
删除列表中的元素还有remove()方法,这个方法是用来删除指定内容的元素,只删除一次。代码段:
names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]
names.remove("chenyijie")
print(names)
运行结果:
['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']
总结:
1. 表的修改(表示动态的,里面的元素是可以变化的 - 增删改)
修改表里面的元素:list[index] = newvalue
2.在列表末尾添加元素:List.append(value)
可以通过创建空列表 + append的方法创建列表
3.插入元素:list.insert(index,value) 第一次遇到方法里面两个参数的情况,两个参数用逗号分隔,index位置的元素向后移动
4.(1)删除元素 - 根据索引
写法一:del(list[index]) 写法二:del list[index]
(2)删除元素 - 根据值
List.remove(value)
在这个方法中如果有两个相同的值那么只会删除其中的一个
5.有的时候我们需要取得一个数据,用一下之后需要删除(只用一次)
list[-1] del(list[-1])
- 方法的使用方式总结
Python中一些方法的常见形式:
method() method(arg) xxV.method() xxV.method(arg1,arg2)
- 使用列表中的Pop方法弹出数据
v = list.pop()把某个元素弹出来:list.pop() list.pop(index)
Pop的作用等价于先删除列表中某个元素,然后再返回该列表
原始代码段:
names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]
print(names)#输出原始列表
del names[1]#del方法没有返回值
print(names)#输出删除元素后的列表
运行结果:
['maruipeng', 'sunchangxuan', 'chenyijie', 'chenyijie', 'LiZheRui']
['maruipeng', 'chenyijie', 'chenyijie', 'LiZheRui']
使用Pop方法同样可以实现上述代码段:
names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]
new_names = names.pop()#默认弹出最后一个元素,并返回具体删除的是哪个元素
print("弹出的元素是:\n"+new_names)
print("弹出元素后的列表是:")
print(names)
运行结果:
弹出的元素是:
LiZheRui
弹出元素后的列表是:
['maruipeng', 'sunchangxuan', 'chenyijie', 'chenyijie']
拓展:list.pop(index)可以弹出指定位置的列表元素
- 列表的排序和列表翻转
1.代码段1:
names =["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]
names.sort()#排序优先级:数字>大写字母>小写字母
print(names)
运行结果:
['1chenyijie', 'LiZheRui', 'chenyijie', 'maruipeng', 'sunchangxuan']
(1)数字正序排序代码段:
scores = [21,413,32,187,9,15]
scores.sort()
print(scores)
运行结果:
[9, 15, 21, 32, 187, 413]
注意:中文不能排序
(2)数字倒序排序代码段:在sort()中添加参数reverse=True
scores = [21,413,32,187,9,15]
scores.sort(reverse=True)
print(scores)
运行结果:
[413, 187, 32, 21, 15, 9]
2.sort()方法影响原列表,排序结果将存储在原列表中。
sorted()方法不影响原列表,排序结果不存储在原列表中。
代码段2;
scores = [21,413,32,187,9,15]
sscores = sorted(scores)
print(sscores)
print(scores)#可以看出sorted不改变原列表中的内容
scores.sort()
print(scores)#sort可以改变原列表中的内容
运行结果:
[9, 15, 21, 32, 187, 413]
[21, 413, 32, 187, 9, 15]
[9, 15, 21, 32, 187, 413]
3.列表的倒序方法:reverse()
代码段3:
scores = [21,413,32,187,9,15]
scores.reverse()
print(scores)
运行结果:
[15, 9, 187, 32, 413, 21]
- 多维列表和取得列表长度
- 获取列表长度
代码段1:
names = ["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]
length = len(names)
print(length)
运行结果:5
2.列表可以包含不同类型的数据
代码段2:
mix = ["MaRuipeng",89,"ChenYijie",90]
print(mix)
运行结果:['MaRuipeng', 89, 'ChenYijie', 90]
3.多维列表和取得列表长度
列表里面的元素可以是列表(多维列表)(多维数组)
- 多维列表:
代码段1:
names = ["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]
group = [["MaRuipeng","ChenYijie","ZhangWanjing"],["Wangkaiming","ChenYuheng","RanFeifei"]]
print(group)
print(group[0])#把元素的第一行输出
print(group[1])#把元素的第二行输出
print(group[0][0])#把元素第一行中的第一个元素输出
print(group[1][1])#把元素第二行中的第二个元素输出
运行结果:
[['MaRuipeng', 'ChenYijie', 'ZhangWanjing'], ['Wangkaiming', 'ChenYuheng', 'RanFeifei']]
['MaRuipeng', 'ChenYijie', 'ZhangWanjing']
['Wangkaiming', 'ChenYuheng', 'RanFeifei']
MaRuipeng
ChenYuheng
练习题
(初期练习题比较简单,跟老师讲的内容重合,后面学的知识多了,后面的练习题会比较有意思)
- 创建一个空列表,命名为names,往里面添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black元素。
作业1:
#1、创建一个空列表,命名为names,往里面添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black元素。
names = []
names.append("Lihua")
names.append("Rain")
names.append("Rain")
names.append("Jack")
names.append("Xiuxiu")
names.append("Peiqi")
names.append("Black")
print(names)
往(1)中的names列表里Black前面插入一个Blue。
作业2:
names.insert(-1,"Blue")
插入数据用insert不是用append
- 取出names列表中索引4-7的元素。
作业3:
print(names[4:8])
索引4-7:要注意[:]方法包括前面的索引不包括后面的索引,所以如果想要取出索引为4-7的元素,记得+1!
- 把names列表中Xiuxiu的名字改成中文。
作业4:
names[4]="秀秀"
print(names)
运行结果:['Lihua', 'Rain', 'Rain', 'Jack', '秀秀', 'Peiqi', 'Blue', 'Black']
- 返回names列表中Peiqi的索引值(下标)。
res = names.index("Peiqi")
print(res)
运行结果:5
- 创建新列表[1,2,3,4,2,5,6,2],合并到names列表中。
百度到有两种方法可以解决这个问题:
- extend都可以用来合并两个列表,extend是在原列表修改,
- 用 + 生成新的列表
作业6:
(1)用+号连接两个列表
names = []
names.append("Lihua")
names.append("Rain")
names.append("Rain")
names.append("Jack")
names.append("Xiuxiu")
names.append("Peiqi")
names.append("Black")
names.insert(-1,"Blue")
num=[1,2,3,4,2,5,6,2]
res = names+num
print(res)
(2)用extend连接两个列表
names = []
names.append("Lihua")
names.append("Rain")
names.append("Rain")
names.append("Jack")
names.append("Xiuxiu")
names.append("Peiqi")
names.append("Black")
names.insert(-1,"Blue")
num=[1,2,3,4,2,5,6,2]
names.extend(num)
print(names)
|