Python 列表内置函数用法

  通过 dir(list) 可查看列表包含的内置函数

1. append 添加元素

  list.append(obj)list += [obj] 相同

a = [1, 2, 3]
a += [4]
a.append(5)
print(a)

>>> [1, 2, 3, 4, 5]

2. clear 清空列表

  list.clear()list = [] 相同

a = [1, 2, 3]
a.clear()
print(a)

>>> []

3. copy 拷贝

  涉及浅拷贝和深拷贝
  浅拷贝如下 b = a,拷贝后 a 和 b 的地址相同,指向同一内存空间,修改其中一个内部数据,另一个也会一起被修改(包括传入函数时浅拷贝被修改)。
  深拷贝如下 c = a.copy(),此时 c 会开辟一个新的内存空间存储 a 中的数据,但可以发现虽然 a 和 c 的地址不同,修改前三个数据互不影响,但是 a[3] 和 c[3] 的地址相同,修改第四项二层列表内的数据依然会相互影响。
  个人理解:c 虽然开辟了新的内存空间存放数据,但是 a[3] 本身存放的是这个二层列表的地址,因此 a[3] 和 c[3] 指向的是同一个地址,修改数值自然会相互影响。使用 copy.deepcopy() 可以使内层也彻底深拷贝。

import copy

a = [1, 2, 3, [4, 5, 6]]
b = a
c = a.copy()
d = copy.deepcopy(a)
print('a: ', id(a))
print('b: ', id(b))
print('c: ', id(c))
print('a[3]: ', id(a[3]))
print('c[3]: ', id(c[3]))
print('d[3]: ', id(d[3]))

>>> 
a:  140296574785088
b:  140296574785088
c:  140296574786368
a[3]:  140296574785248
c[3]:  140296574785248
d[3]:  140296574784528

4. count 计数

a = [[1, 2, 3], [1, 2, 3]]
print(a.count([1, 2, 3]))

>>> 2

5. extend 添加可迭代对象

  list.extend(Iterable)list += Iterable 相同

a = [1, 2, 3]
a.extend([1, 2, 3, [4, 5, 6]])
print(a)

>>> [1, 2, 3, 1, 2, 3, [4, 5, 6]]

6. index 获取元素下标

  当有重复元素时只返回首个元素的下标,元素不存在直接报错。

a = [1, 2, 3, 1]
print(a.index(1))

>>> 0

7. insert 指定位置添加元素

a = [1, 2, 3]
a.insert(1, 10)
print(a)

>>> [1, 10, 2, 3]

8. pop 删除并返回指定位置元素

a = [1, 2, 3]
print(a.pop(1), a)

>>> 2 [1, 3]

9. remove 删除元素

  当有重复元素时只删除首个元素,元素不存在直接报错。

a = [1, 2, 3, 1]
a.remove(1)
print(a)

>>> [2, 3, 1]

10. reverse 翻转列表

  内层不会翻转

a = [1, 2, 3, [1, 2, 3]]
a.reverse()
print(a)

>>> [[1, 2, 3], 3, 2, 1]

11. sort 排序

  reverse=bool 控制排序方向;
  key 配合 lambda 函数选择排序的依据,例如 lambda x: x[1] 按每一项第二个元素大小排序,lambda x: len(x) 按每一项的长度排序。
  注意:a.sort() 当两项第一个元素相同时会依次比较后续元素 [1,3] 位置在 [1,7] 之前,而 a.sort(key=lambda x: x[0]) 仅比较第一个元素,相同时按原顺序排列。

a = [[2, 4], [1, 7], [2, 1], [1, 3]]
a.sort()
print(a)
a.sort(reverse=True)
print(a)
a.sort(key=lambda x: x[0])
print(a)
a.sort(key=lambda x: x[1])
print(a)

>>> 
[[1, 3], [1, 7], [2, 1], [2, 4]]
[[2, 4], [2, 1], [1, 7], [1, 3]]
[[1, 7], [1, 3], [2, 4], [2, 1]]
[[2, 1], [1, 3], [2, 4], [1, 7]]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值