目录
概念:
list定义格式:
list的用法:
count:
index:
append:
clear:
copy
deepcopy:深拷贝
extend:
insert:
reverse:
列表(list)是Python中常见的数据结构
定义列表的时候使用的[],也可以包含多个不同的元素,多个元素之间用逗号隔开,存储多个值,可以存出不同类型的值
例如:list_data = [valu1, valu2, valu3, ...... ]
注意:在list中下标也是从0开始
count(self, value, /)
Return number of occurrences of value.
计数:(括号里面跟需要计数的下标值)
返回值为value的次数
例如:定义一个列表,统计其中2的个数
# 定义一个列表
list_data = [1, 2, 3, 1 + 2j, 2, [1, 2]]
# 统计列表中2的个数
print(list_data.count(2))
运行结果为:
index(self, value, start=0, stop=9223372036854775807, /)
Return first index of value.
索引:list.index方法返回参数值所在列表的索引
例如:定义一个列表[1, 2, 3]并且查找其中2的位置
list_data = [1, 2, 3]
print(list_data.index(1))
运行结果为:
append(self, object, /)
Append object to the end of the list.
追加:传一个参数,追加在列表的最后,无返回值,在原列表上进行追加操作
例如:定义一个列表[1, 2, 3]追加一个参数4
list_data = [1, 2, 3]
data = list_data.append(4)
print(list_data)
输出结果为:
clear(self, /)
Remove all items from list.
清空操作:无返回值,括号内可不加参数,清空原来的列表
例如:定义一个列表[1, 2, 3]清空其列表
list_data = [1, 2, 3]
data = list_data.clear()
print(list_data)
输出结果为:
copy(self, /)
Return a shallow copy of the list.
浅拷贝:返回浅拷贝的列表,只拷贝地址
使用它前需要先导入深拷贝库:
from copy import deepcopy
例如:定义一个列表[1, 2, [1, 2]],使用深拷贝和浅拷贝此列表并打印出原列表、浅拷贝、深拷贝的各元素的id
from copy import deepcopy
list_data = [1, 2, [1, 2]]
# 深拷贝
deep_list = deepcopy(list_data)
shadow_list = list_data.copy()
print(f"{'list':^20}{'list id':^20}{'itm1 id':^20}{'itm2 id':^20}{'itm3 id':^20}\
{'itm3-1 id':^20}{'itm3-2 id':^20}")
print(f"{'list_data':^20}{id(list_data):^20}{id(shadow_list[0]):^20}{id(list_data[1]):^20}{id(list_data[2]):^20}\
{id(list_data[2][0]):^20}{id(list_data[2][1]):^20}")
print(f"{'shadow_data':^20}{id(shadow_list):^20}{id(shadow_list[0]):^20}{id(shadow_list[1]):^20}{id(shadow_list[2]):^20}\
{id(shadow_list[2][0]):^20}{id(shadow_list[2][1]):^20}")
print(f"{'deep_list':^20}{id(deep_list):^20}{id(deep_list[0]):^20}{id(deep_list[1]):^20}{id(deep_list[2]):^20}\
{id(deep_list[2][0]):^20}{id(deep_list[2][1]):^20}")
运行结果:
总结:深拷贝与浅拷贝的区别
浅拷贝:只拷贝对象,不会拷贝对象的引用对象,不会拷贝原始对象内的具体内容。
深拷贝:拷贝对象的值类型,还拷贝了原始对象,而产生了一个新的对象,不仅仅只拷贝了原始对象,还拷贝了原始对象内的具体值
extend(self, iterable, /)
Extend list by appending elements from the iterable.
扩展:列表后面跟可迭代对象,在原列表中进行修改
例如:定义一个列表[1,2,3],给其扩展成[1, 2, 3, 4, 5, 6, 7, 8, 9]
list_data = [1, 2, 3]
list_data.extend([4, 5, 6, 7, 8, 9])
print(list_data)
运行结果:
insert(self, index, object, /)
Insert object before index.
插入:插入,在原来的列表上插入想插入的内容插入在下标之前
例如:定义一个列表[1, 2, 3],在下表为1的地方插入5
list_data = [1, 2, 3]
data2 = list_data.insert(1, 5)
print(list_data)
运行结果:
reverse(self, /)
Reverse *IN PLACE*.
翻转:将原来的列表倒叙
例如:定义一个列表[1, 2, 3],将其倒序
方法一:使用list.reverse
list_data = [1, 2, 3]
list_data.reverse()
print(list_data)
输出结果:
方法二:切片
list_data = [1, 2, 3]
print(list_data[::-1])
输出结果: