python 列表list用法总结

python 列表list用法总结,第1张

目录

1、创建空列表

2、索引、切片

3、加入元素

4、删除、清空 *** 作

5、列表长度及最值

6、运算符和表达式

7、值的索引

8、反转及排序

9、统计指定元素出现的次数

10、交换

11、列表相互赋值(理解浅拷贝)


python 中的列表(list)类型类似于 C++ 中的 vector 类型,不过列表的功能更多。


1、创建空列表

直接使用一对空的方括号就可以创建空列表,或者使用 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] ,二者仍然相同

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/579556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存