本内容均来自在北京图灵学院Python免费全栈学习的课堂笔记
关于列表的常用函数
- len():求列表的长度
- max():求列表中的最大值
- min():求列表中的最小值
- index():求列表中指定值的下标
- list():将其他格式的数据转换成list
- 要求被转换的数据是可迭代的
- append():在列表末尾追加数据
- insert():制定位置插入数据
- insert(index,data):表示把数据data插入到下标为index的数据的前面
- del():删除
- pop():把最后一个元素取出来
- remove():在列表中删除指定值的数据
- 注意,使用remove()删除列表中指定值的数据必须要确定该列表中有指定值的数据
- clear():清空列表,是把列表中的数据全部清空
- reverse():把列表中的数据顺序反转;注意,reverse()函数是对原列表中的数据进行反转
- extend():扩展列表,两个列表,把一个列表的所有数据直接拼到另一个列表的后面
- count():查找列表中指定值的个数
- copy():拷贝,浅拷贝,使用copy()函数是新建一个列表,即该列表与被拷贝列表的地址是不一样的
# 常用函数案例
s = "我喜欢齐天大圣孙猴子"
a = list(s)
print(a)
print("a中的最小值:",min(a),";","a中的最大值:",max(a))
print(len(a))
b = list(range(4,10))
print(b)
print("b中的最小值:",min(b),";","b中的最大值:",max(b))
# append()案例
print("append()案例:")
b.append(10)
print(b)
# insert()案例
print("insert()案例:")
b.insert(0,3)
print(b)
# pop()案例
print("pop()案例:")
last_ele = b.pop()
print(last_ele)
print(b)
# remove()案例
print("remove()案例:")
print(id(b))
b.remove(3)
print(b)
print(id(b))
# reverse()案例
print("reverse()案例:")
print(b)
b.reverse()
print(b)
# extend()案例
print("extend()案例:")
b.extend(b)
print(b)
# count()案例
a = b.count(4)
print("列表b中有",a,"个数字4")
# clear()案例
b.clear()
# clear()函数只是把列表中的数据清空
print(b)
执行结果:
['我', '喜', '欢', '齐', '天', '大', '圣', '孙', '猴', '子']
a中的最小值: 喜 ; a中的最大值: 齐
10
[4, 5, 6, 7, 8, 9]
b中的最小值: 4 ; b中的最大值: 9
append()案例:
[4, 5, 6, 7, 8, 9, 10]
insert()案例:
[3, 4, 5, 6, 7, 8, 9, 10]
pop()案例:
10
[3, 4, 5, 6, 7, 8, 9]
remove()案例:
2445105025352
[4, 5, 6, 7, 8, 9]
2445105025352
reverse()案例:
[4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4]
extend()案例:
[9, 8, 7, 6, 5, 4, 9, 8, 7, 6, 5, 4]
列表b中有 2 个数字4
[]
# 列表类型的变量赋值案例
# 注意:list类型,简单的赋值操作是传地址
a = [1,2,3,4,5,6]
print(a)
b = a
b[2] = 300
print(b)
print(a)
print(id(a)==id(b))
# 为了解决上面问题,则可使用copy()函数,浅拷贝
c = a.copy()
c[0] = 100
print(c)
print(a)
print(id(a)==id(c))
执行结果:
[1, 2, 3, 4, 5, 6]
[1, 2, 300, 4, 5, 6]
[1, 2, 300, 4, 5, 6]
True
[100, 2, 300, 4, 5, 6]
[1, 2, 300, 4, 5, 6]
False
# 深拷贝和浅拷贝的区别
a = [1,2,3,[10,20,30]]
b = a.copy()
print(id(a)==id(b))
print(id(a[3])==id(b[3]))
a[3][1] = 200
print(a)
print(b)
# 由上面案例可知,浅拷贝只拷贝一层内容
# 深拷贝需要使用特定工具
import copy
c = copy.deepcopy(a)
a[3][2] = 300
print(a)
print(c)
print(id(a[3])==id(c[3]))
执行结果:
False
True
[1, 2, 3, [10, 200, 30]]
[1, 2, 3, [10, 200, 30]]
[1, 2, 3, [10, 200, 300]]
[1, 2, 3, [10, 200, 30]]
False