python 列表list用法总结

目录

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] ,二者仍然相同

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球被支点撬走啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值