Python数据类型之list相关常用操作

上一篇:Python数据类型之str相关常用操作 点击跳转
目录篇:python相关目录篇 点击跳转
下一篇:Python数据类型之dict相关常用操作 点击跳转

目录

  • list
  • 这些操作的时间复杂度是多少?
  • copy(浅复制):
  • deepcopy(深复制)
  • 实战解释

list

列表:在其他编程语言中称为“数组”,是一种基本的数据结构类型。

关于列表的问题:

列表中元素使如何存储的?

元素其实是内存地址,指向真正的元素,因为元素重复的时候,可以重复指向(省内存)

列表提供了哪些基本的操作?

列表操作包含以下函数:
1、cmp(list1, list2):比较两个列表的元素 
2、len(list):列表元素个数 
3、max(list):返回列表元素最大值 
4、min(list):返回列表元素最小值 
5、list(seq):将元组转换为列表 
列表操作包含以下方法:
1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项
8、list.reverse():反向列表中元素
9、list.sort([func]):对原列表进行排序
10、改list[index]=obj
11、obj in list 判断
12、删除del list[2]、删除del list

 

这些操作的时间复杂度是多少?

增append(O(1))

插insert(O(n))

改 li[index] =obj (O(1))

移 remove (O(n))

查  in list  (O(n))

copy(浅复制):

只拷贝父对象不会拷贝其子对象,修改子对象,将受影响

(简单理解,大列表的value修改了,浅复制不会做任何修改,大列表里面的小列表的value修改,浅复制会跟着修改)

 

deepcopy(深复制)

深复制,将拷贝其父子对象,修改父子对象,将不受影响(简单就是完整复制一份出来,两个互不关联,一个如何修改都不会影响另外一个)

 

实战解释

list = ["Zks","Fxm","Zzc","Zsy"]  

#list=列表 ["元素" , "元素" ,"元素","元素"]

#下标         0       1       2      3

list[0]     #切片, 取下标0的元素

list[1:3]   #切片,为什么是取下标1和2的元素

list[-1]    #最右边的下标 也就是zsy

list[-3:-1] #切片值可以从左到右切,不可以从右到做切 ,但是这样造成-1下标切不到

list[-3:]   #单独一个冒号:代表从-3该下标直接切到结尾

list[:2]    #==[0:2]  切0到1


for index,item enumerate(names)  #获取对象的下标(index)和value
    print(index,item)
    #index = 0    index = 1    index = 2    index = 3
    #item = Zks      ......        ....        item= Zsy



list.append("xxx")             #xxx追加到尾部   不能批量

list.insert(1,"xxx ")          #xxx插入到1下标   不能批量

list[2] = "xxx"                #下标2替换成xxx

list.pop(1)                    #删除下标1,如果小括号 ()不输入下标就默认删除最后一个下标的元素

print(list .index("xxx"))        #查看xxx字符串的下标

print(list [list.index("xxx")])  #显示该元素的下标

print(list.count("xxx"))        #计算xxx重复次数

list.clear()                    #清空所有下标

list.reverse()                  #反转:左到右 右变成左

list.sort()                     #排序默认是按第一个字符:如果是特殊符号#@$! 优先排序 次之:按数字排序 再次字母排序,ASCII码排序的

list.extend(list1)  #把list1该列表的元素合并到变量列表里面元素后面

del list1  #删除list1

上一篇:Python数据类型之str相关常用操作 点击跳转
目录篇:python相关目录篇 点击跳转
下一篇:Python数据类型之dict相关常用操作 点击跳转

 

你可能感兴趣的:(Python篇)