列表
为什么要学习列表?
- 列表能够存储比字符串更多的数据
- 列表能够存储各种数据类型
列表的定义
列表 = [值1,值2,值3…]
列表是有序的,同样,有序就意味这有切片跟步长
切片:切完之后返回的是原数据类型
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
print(lst[2:4])
#结果:['周杰伦', '五月天']
步长:步长同样也返回原数据类型
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
print(lst[1:4:2])
#结果:['王一博', '五月天']
列表是可变的,意味着有增删改查
列表的增删改查
增
append:追加。就是在列表的最后一个位置添加
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
lst.append("帅帅")
print(lst)
#结果:['薛之谦', '王一博', '周杰伦', '五月天', '王思聪', '帅帅']
insert:插入。在要添加的值前面添加。比如上一个帅帅排在最后面,所以他很生气。我们这次把他添加到第一位。
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
lst.insert(0,"帅帅")
print(lst)
#结果:['帅帅', '薛之谦', '王一博', '周杰伦', '五月天', '王思聪']
extend:迭代添加.将后面的值一个一个添加到前面的列表里面。即使是字符串,也会挨个添加。添加的对象必须是可迭代对象
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
lst.extend("123")
print(lst)
#结果:['薛之谦', '王一博', '周杰伦', '五月天', '王思聪', '1', '2', '3']
删
clear:清空列表,清空之后就是一个空列表
pop:
lst = ["薛之谦","王一博","周杰伦","五月天","王思聪"]
lst.pop() #不写的时候默认删除最后一个
lst.pop(2) # 写的时候直接进行索引删除
#结论:pop删除的时候会返回当前删除的值
remove:直接删除要删除的值
改
列表[索引] = 新值
查
index:查找元素的索引,找不到会报错
其他操作
列表 + 列表 还是列表,相当于列表.extend
(列表)
列表 * 数字还是列表,但是会把列表的值打印数字的倍数
copy:浅拷贝,拷贝会开辟新的内存空间,但是值共用
count:计算元素在列表里面有多少个,跟字符串的count异曲同工
reverse:反转列表,在原列表上进行反转
reverse和内置函数reversed()的区别:
列表的reverse方法会在源列表上进行改变
reversed()函数不会改变源列表
sort:在源列表上进行排序,默认从小到大
#直接在源列表上进行排序
lst.sort()
#指定源列表的排序规则,当源列表里面的元素为可迭代对象的时候
def func(lst):
return lst[1]
lst1 = [[1,2],[2,3],[5,1],[2,3]]
lst1.sort(key=func)
print(lst1)
#结果:[[5, 1], [1, 2], [2, 3], [2, 3]]
#在源列表上进行反转
lst.sort(reverse=True) #默认为false
lst1 = [1,2,32,3,213,12,312,321,3,123]
lst1.sort(reverse=True)
print(lst1)
#结果:[1, 2, 3, 3, 12, 32, 123, 213, 312, 321]
列表的嵌套
就是多维数组,整就完了。不太重要。
列表的方法
append
clear
copy
count
extend
index
insert
pop
remove
reverse
sort