列表(可用*)
列表的定义
list1 = ["a","b",123]
列表推导式
list1 = [i for i in range(100) if not(i%2) and i % 3]
访问列表中的值
list1 = ["a","b","c","d","e"]
print(list1[0]) --> a
print(list1[0:3]) --> ["a","b","c"]
print(list1[:3]) --> ["a","b","c"]
print(list1[0:-1]) --> ["a","b","c","d"]
print(list1[2:]) --> ["c","d","e"]
print(list1[:]) --> ["a","b","c","d","e"]
print(list1[0:-1:2]) --> ["a","c"]
索引介绍
- list1[0]:这种[]中只有一个数字的是访问单个元素,索引从0-len(list1)-1
- list1[0:3]:这种拥有两个索引,中间用冒号连接的是访问索引从0-2的三个元素组成的列表,索引包左不包右
- list1[:3]:这个相当于list1[0:3],左边缺省代表从0开始
- list1[0:-1]:这个相当于从0访问到倒数第二个元素,-1代表最大的索引,但是因为包左不包右,所以最后一个元素获取不到
- list1[2:]:缺省右边相当于从2开始访问到最后一个元素
- list1[:]:两边都缺省相当于list1列表的拷贝,它们的id不一致,相当于list1.copy()
- list1[0:-1:2]:这个和4一样,但是最后那个2代表的是步进的意思,就是每两个元素取一个元素
遍历列表
list1 = ["a","b","c","d","e"]
for i in list1:
print(i)
list1 = ["a","b","c","d","e"]
for index,item in enummerate(list1):
print(index, item)
修改列表元素
通过索引修改
list1 = ["a","b","c","d","e"]
list1[2] = 123
list1 --> ["a","b",123,"d","e"]
通过方法修改
list1 = ["a","b","c","d","e"]
list1.append("f")
list1 --> ["a","b","c","d","e","f"]
list1.pop([index])
list1 --> ["a","b","c","d","e"]
列表的拼接
list1 = [1,2,3,4]
list2 = [1,2,3,4]
list3 = list1 + list2
print(list3) --> [1,2,3,4,1,2,3,4]
列表的函数与方法
函数 |
描述 |
len(list) |
列表元素个数 |
max(list) |
返回列表元素最大值 |
min(list) |
返回列表元素最小值 |
list(seq) |
将元组转换为列表 |
方法 |
描述 |
list.append(obj) |
在列表末尾添加新的对象 |
list.count(obj) |
统计某个元素在列表中出现的次数 |
list.extend(seq) |
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) |
从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) |
将对象插入列表 |
list.pop(obj=list[-1]) |
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) |
移除列表中某个值的第一个匹配项 |
list.reverse() |
反向列表中元素 |
list.sort([func]) |
对原列表进行排序 |
list.clear() |
清空列表:[] |
list.copy() |
复制列表,拷贝一份,id不一样 |
二维列表
格式
list1 = [[1, 2], [3, 4], [5, 6]]
访问元素
list1 = [[1, 2], [3, 4], [5, 6]]
list1[0] --> [1, 2]
sort函数
list1.sort(key=lambda x:x[0],reserve=True)
sort函数详解
- 第一个参数,key=是通过key进行排序
- reserve是反序的意思
sort函数的使用
list1 = [[5, 6], [1, 0], [2, 2], [0, 3], [4, 5]]
list1.sort(key=lambda x: x[0], reverse=True) #
print(list1) --> [[5, 6], [4, 5], [2, 2], [1, 0], [0, 3]]
深浅拷贝
浅拷贝
- 只是拷贝了引用
深拷贝
- 从内存地址角度进行改变了