python列表和元组的操作函数

回顾:
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']

innot 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
列表的添加函数之append:
功能:将一个元素添加到当前列表中;
用法:
list.append(new_item)
参数:
new_item:要添加进列表的新元素;
eg: names = ['zhangsan']
    names.append('lisi')
    print(names)
返回结果应为:['zhangsan', 'lisi']
注意:
1、被添加的元素只会被添加到末尾;
2、append是在原有的列表基础进行添加,不需要额外添加新的变量;
3、每次只能加入一个元素;
列表的添加函数之insert:
功能:将一个元素添加到当前列表的指定位置中;
用法:
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传入的位置不存在,则会把新元素添加到列表末尾;
列表(元组)的count函数:
功能:返回当前列表(元组)中的某个元素的个数;
用法:
inttype = list.count(item)
参数:
item:你想查询个数的元素;
eg: names = ['zhangsan','lisi', 'wanger', 'lisi']
    count = names.count('lisi')
    print(count)
返回结果应为:2
注意:
1、如果查询的元素不存在,则返回0;
2、只会检查完整的元素(不支持模糊查询);
列表的remove函数:
功能:删除列表中的某个元素;
用法:
list.remove(item)
参数:
item:准备删除的列表元素;
eg: names = ['zhangsan','lisi']
    names.remove('lisi')
    print(names)
返回结果应为:['zhangsan']
注意:
1、如果被删除的元素不存在,将会报错;
2、如果被删除的元素在列表中存在多个,则只会删除第一个元素;
第八个内置函数del:
功能:把变量完全删除;
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']
列表的sort函数:
功能:对当前列表按照一定规律进行排序;
用法:
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会报错;
列表的clear函数:
功能:清空当前列表中的数据;
用法:
list.clear()
eg: names = ['zhangsan','lisi', 'wanger', 'mazi']
    names.clear()
    print(names)
返回结果应为:[]
列表的copy函数:
功能:复制当前列表;
用法:
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']

 

posted @ 2021-07-02 16:29  Brother_Cat  阅读(317)  评论(0编辑  收藏  举报