回顾: len函数在列表(元组)中的使用: eg: names = [‘zhangsan‘, ‘lisi‘, ‘wanger‘, ‘mazi‘] length = len(names) print(length) 返回结果应为: 4 元组的使用规则也是一样的; len函数可以计算出,除数字类型外的所有数据类型的长度; 列表(元组)间的累加与累乘: eg: names = [‘zhangsan‘, ‘lisi‘] new_names = names + names print(new_names) 返回结果应为: [‘zhangsan‘, ‘lisi‘, ‘zhangsan‘, ‘lisi‘] names = [‘zhangsan‘, ‘lisi‘] new_names = names * 2 print(new_names) 返回结果应为: [‘zhangsan‘, ‘lisi‘, ‘zhangsan‘, ‘lisi‘] in 和 not in 在列表(元组)中的用法: in 判断某个元素是否存在于该数据结构中; not in 判断某个元素是否不存在与该数据结构中; 它们返回的都是bool值; eg: names = [‘zhangsan‘, ‘lisi‘] booltype = ‘lisi‘ in names print(booltype) 返回结果应为: True names = [‘zhangsan‘, ‘lisi‘] booltype = bool(‘lisi‘ not in names) print(booltype) 返回结果应为: False
功能:将一个元素添加到当前列表中; 用法: list.append(new_item) 参数: new_item:要添加进列表的新元素; eg: names = [‘zhangsan‘] names.append(‘lisi‘) print(names) 返回结果应为:[‘zhangsan‘, ‘lisi‘] 注意: 1、被添加的元素只会被添加到末尾; 2、append是在原有的列表基础进行添加,不需要额外添加新的变量; 3、每次只能加入一个元素;
功能:将一个元素添加到当前列表的指定位置中; 用法: list.insert(index, new_item) 参数: index:新的元素要放置的位数; new_item:要添加的新元素; eg: names = [‘zhangsan‘, ‘wanger‘] names.insert(1, ‘lisi‘) print(names) 返回结果应为:[‘zhangsan‘, ‘lisi‘, ‘wanger‘] ps:字符串、元组、列表中元素的位置是从0开始计算的; insert 与 append 的区别: 1、append只能把元素添加到结尾,而insert可以选择一个指定位置添加; 2、如果insert传入的位置不存在,则会把新元素添加到列表末尾;
功能:返回当前列表(元组)中的某个元素的个数; 用法: inttype = list.count(item) 参数: item:你想查询个数的元素; eg: names = [‘zhangsan‘,‘lisi‘, ‘wanger‘, ‘lisi‘] count = names.count(‘lisi‘) print(count) 返回结果应为:2 注意: 1、如果查询的元素不存在,则返回0; 2、只会检查完整的元素(不支持模糊查询);
功能:删除列表中的某个元素; 用法: list.remove(item) 参数: item:准备删除的列表元素; eg: names = [‘zhangsan‘,‘lisi‘] names.remove(‘lisi‘) print(names) 返回结果应为:[‘zhangsan‘] 注意: 1、如果被删除的元素不存在,将会报错; 2、如果被删除的元素在列表中存在多个,则只会删除第一个元素;
功能:把变量完全删除; eg: names = [‘zhangsan‘,‘lisi‘] del names print(names) 返回结果将会报错:NameError: name ‘names‘ is not defined 列表的reverse函数: 功能:把当前列表顺序反转; 用法: list.reverse() eg: names = [‘zhangsan‘,‘lisi‘, ‘wanger‘, ‘mazi‘] names.reverse() print(names) 返回结果应为: [‘mazi‘, ‘wanger‘, ‘lisi‘, ‘zhangsan‘]
功能:对当前列表按照一定规律进行排序; 用法: list.sort(key=None, reverse=False) 参数: key:参数比较(默认不传); reverse:排序规则,True为降序,False为升序(默认是升序); eg: names = [‘zhangsan‘,‘lisi‘, ‘wanger‘, ‘mazi‘] names.sort() print(names) 返回结果应为:[‘lisi‘, ‘mazi‘, ‘wanger‘, ‘zhangsan‘] 注意:列表中元素类型必须相同,否则使用sort会报错;
功能:清空当前列表中的数据; 用法: list.clear() eg: names = [‘zhangsan‘,‘lisi‘, ‘wanger‘, ‘mazi‘] names.clear() print(names) 返回结果应为:[]
功能:复制当前列表; 用法: list.copy() eg: names = [‘zhangsan‘,‘lisi‘, ‘wanger‘, ‘mazi‘] names_new = names.copy() print(names_new) 返回结果应为:[‘zhangsan‘, ‘lisi‘, ‘wanger‘, ‘mazi‘] copy与二次赋值的区别: 什么是二次赋值: a = [1, 2, 3] b = a 向上面的方法就叫二次赋值; 区别:二次赋值的变量与原始变量享有共同的内存空间,故而同享数据变更,而用copy函数创建的新列表,与原始列表不是一个内存空间,所以也不同享数据变更; 注意:copy属于浅拷贝; 浅拷贝:只能对数据结构的第一层进行拷贝,如果数据结构有更深的层则无法进行拷贝,深层数据与原数据共享,变化也会共享; 简单的讲,我们有一个列表a,列表a里的元素也是列表,当我们使用copy拷贝出新列表b后,无论是a还是b内部的列表元素发生改变后,另一个也会跟着改变; eg:a = [[1, 2, 3], [4, 5, 6]] b = a.copy() b[0].append(2021) print(a) print(b) 输出结果应为: [[1, 2, 3, 2021], [4, 5, 6]] [[1, 2, 3, 2021], [4, 5, 6]] 深拷贝:不仅对第一层的数据进行了拷贝,对深层数据也进行了拷贝,原始变量和新变量不在共用任何内存,固然也不会共享任何数据; 用法: list_new = copy.deepcopy(list) eg: a = [[1, 2, 3], [4, 5, 6]] b = copy.deepcopy(a) b[0].append(2021) print(a) print(b) 返回结果应为:[[1, 2, 3], [4, 5, 6]] [[1, 2, 3, 2021], [4, 5, 6]] 列表的extend函数: 功能:将其他列表/元组中的元素导入到当前列表中; 用法: list.extend(iterable) eg: names = [‘zhangsan‘, ‘lisi‘] new_names = (‘wanger‘, ‘mazi‘) names.extend(new_names) print(names) 返回结果应为:[‘zhangsan‘, ‘lisi‘, ‘wanger‘, ‘mazi‘]
原文:https://www.cnblogs.com/BrotherCat/p/14963867.html