'''容器可以进行增删改查''' ''' 列表:[],可变、有序可重复、类型可不一样,链表结构 列表的操作: 增:append(元素),extend(iterable):可添加多个元素,insert()在指定位置添加元素 删:remove(元素),pop(index)默认删除最后一个,clear()清空 改:list[index]=新元素 查:index(元素),[index] 截取:[start:end]/[start:end:步长] 排序:sort()升序 reverse()倒叙,反转 sort(reverse=True)降序(升序+倒叙) 拷贝: 地址拷贝==:引用类型变量的赋值(栈内存),地址赋值 浅拷贝copy():一维列表的数据复制以及多维列表地址的复制,比如二维数组中的列表在外层列表中存储的是地址不是数据,所以浅拷贝只能拷到内层列表的地址 深拷贝deepcopy():导入copy模块。多维列表的数据复制,不复制内层列表的地址而是直接将该地址对应的列表数据复制下来(开辟一个空间用来存储内置列表) 注意:列表中存储的内层列表只是内层列表的地址,另外列表的下标是地址偏移量(int的是4个字节也就是32位) 遍历: while 用下标 for 用字符串或者列表、元组,直接遍历的是元素 迭代器 列表的运算: +:合并 *:重复元素 判断:in/not in 判断元素是否在该列表中 计数:count(元素) 记录该元素在该列表中出现的次数 ''' #1.加法运算:相当于拼接操作(将两个列表拼接成一个新的列表) # print(["我是一只"]+["小小鸟"]) #2.乘法运算:生成一个元素以乘数为倍数的新的数组 a=[1,2,3,4] # # print(id(a)==id(a*2),a*2) #3.判断元素是否在列表:元素 in/not in 列表 # print(1 not in a) # #4.在列表的尾部追加一个元素:列表.append(元素),不可以追加多个 # a.append(3) # print(a) # #5.在列表的尾部添加多个值:列表.extend(iterable)#包括字符串,多条记录要用容器来添加 # a.extend("woshi") # print(a) # #6.在指定位置插入一个值,原数据向后延伸:列表.insert(下标,对象),如果不存在该下标就插入在最后 # a.insert(0,"第一") # print(a) # #7.删除指定的元素:remove(元素),移除第一个出现该字符的元素 # a.remove("第一") # print(a) # #8.根据下标删除元素,默认删除最后一个:pop(下标) # a.pop(0) # print(a) #9.清空列表clear(),del也可以删除列表或者列表中的元素,但是一般不用在列表,一般只是用来删除变量 # a.clear() # print(a) #10.根据元素找到对应的下标 # print(a,a.index(3))#元素不存在,会报错 # #11.正序(升序),从小到大:sort(),reverse默认为False升序,为True降序 # a.extend([10,5,4,56]) # print(a.sort(),a) #12.倒叙(降序),从大到小:sort(),reverse默认为False升序,为True降序。或者reverse()也是降序 # print(a.sort(reverse=True),a) # print(a.reverse(),a) ''' 遍历列表: ''' #1.while # i=0 # while i<len(a): # print(a[i]) # i+=1 #2.for循环 # for i in a: # print(i) #3.迭代器遍历 # a=iter(a) # print(next(a))#遍历一个 ''' 元组tuple:(),不可变,可重复有序,类型可以不一样 无增删改,只有查:count()、index() 应用:在不想让数据被修改时 ''' #单元素的元组 # print([1,])#后面的逗号不可省略 tuple1=(1,2) list1=list(tuple1) print(type(list1)) ''' 字典:无序无下标,键唯一不可重复,用[]或者get,[]容易出现角标越界,get()获取不到返回None 创建:{},键一般是不可变的,即:是数字、字符串、元组 添加:键第一次出现并赋值就是添加 [newkey]=value:添加一个键值对 update(字典):添加多个键值对 setdefault(key,value):添加一个键值对 修改:键再次出现并赋值就是修改 [oldkey]=value 删除: pop():通过键删除,返回删除的元素 clear():清空 查 : [key]:无会报错 get():无返回None .key:所有的键(列表) .values:所有的值(列表) .items:所有的键值对(元组) 遍历:for循环默认遍历键 字典.keys():遍历值(列表) 字典.values():值(列表) 字典.items():遍历键和值(元组) ''' dict1={"name":"张三","age":18} print(list(dict1.items())) #增,[]:添加一个、update(字典):添加多个、setdefault(key,value):添加一个 # dict1["sex"]="男" # print(dict1) #删 # dict1.pop("sex")#返回删除的元素 # print(dict1) # print("....................") #遍历键 # for i in dict1: # print(i)#遍历键 # for i in dict1.keys(): # print(i)#遍历键 #遍历值 # for i in dict1.values(): # print(i)#遍历值 #遍历键和值 # for i,j in dict1.items():#i:键,j:值 # print(i,j) ''' 用字典保存以空格分开的字符串每个字符的次数 ''' # dict2={} # str1=input("请输入一个字符串:") # for i in str1.split(" "): # dict2[i]=str1.count(i) # print(dict2) ''' 集合set:无序无下标,不可重复 创建: {value}:单个{}是字典类型,{value}中的value不能是键值对 set(iterable):如果可迭代的是字典,只保存字典的键 增: add():加一条数据,可添加number,字符串 update(itearable):添加多条数据 删: pop():无下标,从左开始删 remove(元素):根据元素删除 clear():清空 查: 将set集合转换成list列表,通过下表来查 ''' set1={"wo"} # #增 # set1.add("he") # print(set1) # set1.update([1,2,3])#无返回值 # set1.union([1,2,3])#不修改原有集合,创建一个新的set集合并添加原集合的元素和新添加的元素,返回这个新的集合 # print(set1.union([1,2,3])) #删 # set1.remove("he")#删除指定的元素 # set1.pop()#删除第一个 # set1.clear()#清空 # print(len(set1)) #改 # #查,转换成列表通过下标来查询 # list2=list(set1) # print(list2[0]) #for循环遍历或者迭代器 # for i in set1: # print(i) #交集,和并集 # print(set1 & {"我是一只小小鸟"})#交集,取相同的元素 # print(set1 | {"我是一只小小鸟"})#并集,相当于添加多个元素
python的数据结构
最新推荐文章于 2022-02-14 20:32:28 发布