目录
1、创建空列表
2、索引、切片
3、加入元素
4、删除、清空 *** 作
5、列表长度及最值
6、运算符和表达式
7、值的索引
8、反转及排序
9、统计指定元素出现的次数
10、交换
11、列表相互赋值(理解浅拷贝)
python 中的列表(list)类型类似于 C++ 中的 vector 类型,不过列表的功能更多。
直接使用一对空的方括号就可以创建空列表,或者使用 list()
alist = []
alist = list()
列表中的元素类型不必都相同,比如下面的例子中,一个列表中同时含有字符串、数字、元组、列表类型的数据
a = ["a string", 12, 12.34, (1, 2, 3), [1, 2, 3]]
print(a)
"""
['a string', 12, 12.34, (1, 2, 3), [1, 2, 3]]
"""
2、索引、切片
切片可以正着来也可以反着来,正着来的索引就是 [0, len-1] ,反过来的索引是 [-len, -1]。
另外切片 *** 作都是左闭右开区间。
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(a[1]) # 2
print(a[-2]) # 9
print(a[1:8:2]) # [2, 4, 6, 8] ,在 [1, 8) 区间内以步长为 2 取值
print(a[1::2]) # [2, 4, 6, 8, 10] ,从索引 1 开始以步长为 2 取值
3、加入元素
添加元素到列表尾部: append()
a = [1, 2, 3, 4, 5]
a.append("6")
print(a) # [1, 2, 3, 4, 5, '6']
在指定索引位置插入数据: insert()
a = [1, 2, 3, 4, 5]
a.insert(0, "6")
print(a) # ['6', 1, 2, 3, 4, 5]
4、删除、清空 *** 作
删除列表中的一个或多个元素:del
a = [1, 2, 3, 4, 5]
del a[0]
print(a) # [2, 3, 4, 5]
del a[:]
print(a) # []
清空列表: clear()
a = [1, 2, 3, 4, 5]
a.clear()
print(a) # []
删除一个元素并返回删除的元素:pop()
a = [1, 2, 3, 4, 5]
b = a.pop() # a = [1, 2, 3, 4]
print(b) # 5
c = a.pop(2) # a = [1, 2, 4]
print(c) # 3
删除给定的值第一次出现的元素:remove()
a = [1, 2, 3, 3, 5]
a.remove(3)
print(a) # [1, 2, 3, 5]
5、列表长度及最值
长度函数使用 len(),最值使用 max()、min()
a = [1, 2, 3, 5, 6]
print(len(a)) # 5
print(max(a)) # 6
print(min(a)) # 1
6、运算符和表达式
可以使用 + 拼接列表,使用 * 重复
a = [1, 2] + [5, 6]
print(a) # [1, 2, 5, 6]
b = [9] * 3
print(b) # [9, 9, 9]
7、值的索引
index() 可以返回指定值第一次出现的索引
a = [1, 2, 5, 5, 6]
print(a.index(5)) # 2
8、反转及排序
reverse() 实现列表反转,sort() 默认实现列表递增排序,设置 reverse 参数可实现降序排序。
两者都是原位 *** 作,无返回值
a = [3, 2, 5, 8, 6]
a.sort()
print(a) # [2, 3, 5, 6, 8]
a.reverse()
print(a) # [8, 6, 5, 3, 2]
sort() 有两个参数 key 和 reverse:
key 可以是一个 lambda 函数,如果给出了 key 函数,则对每个列表元素应用一次,并根据它们的函数值对它们进行升序或降序排序。
比如下面按照列表元素中的第一个值进行排序:
list = [[1,3],[5,7],[3,10],[15,18]]
list.sort(key=lambda x: x[0]) # 按照列表元素中的第一个值升序排序
print(list) # [[1, 3], [3, 10], [5, 7], [15, 18]]
reverse 是一个布尔值,不设置的话默认升序排序,设置为 True 时按照降序排序。
list = [3, 1, 8, 4, 7, 2]
list.sort(reverse=True) # 降序排序
print(list) # [8, 7, 4, 3, 2, 1]
9、统计指定元素出现的次数
使用 count() 函数
a = [3, 2, 5, 8, 5]
counts = a.count(5)
print(counts) # 2
10、交换
python 列表中元素的交换超级方便!甚至不用调用函数,就像下面这样(意会吧):
a = [1,2,3]
a[0], a[1] = a[1], a[0] # 交换元素值
print(a) # [2, 1, 3]
11、列表相互赋值(理解浅拷贝)
如果直接把一个列表 a 赋值给了另一个变量 b,这个过程相当于浅拷贝,不开辟新的内存区,类似于 C++ 中的引用的效果,也就是说后续对 b 的 *** 作也会同等影响到 a。
a = [3, 2, 5, 8, 5]
b = a # 赋值是浅拷贝,对 b 的 *** 作也会同等影响到 a
b.append(9)
print(a) # [3, 2, 5, 8, 5, 9]
print(b) # [3, 2, 5, 8, 5, 9] ,二者仍然相同
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)