列表: #列表的定义一般分静态和动态赋值 a=[1,2,3,4,5] b=list() b.append(1) b.append(2) b.append(3) b.append(4) b.append(5) a.insert(0,6)#插入,0指下标,6是插入的值 #追加时(即用insert()),如果没有这个下标,编辑器会自动帮你纠正 #如果大于长度范围,默认尾部追加 #如果第一个参数为负数,则是从尾部向前查找 #例: a.insert(8,7)#这里没有8下标,他会自动放在下标6的位置 print(a)#[6, 1, 2, 3, 4, 5, 7] a.insert(-1,8)#负数从后向前找,放在下标倒数第二个位置 print(a)#[6, 1, 2, 3, 4, 5, 8, 7] #以上并不适用a[index],当index为单个参数如果越界,会触发异常。多个参数不会 print(a[::-1])#逆序输出 print(b)#[1, 2, 3, 4, 5] b.remove(1)#从列表中移除第一个匹配的值 print(b)#[2, 3, 4, 5] b.pop(1)#按下标移除对应的值 print(b)#[2, 4, 5] #更改: b[1]=22 print(b)#[2, 22, 5] #获取数组长度,避免越界异常:len() print(len(a))#8 print(len(b))#3 #记录某个值的个数:count(值) print(a.count(6))#1 print(a.count(100))#0 #数组追加:extend a.extend(b) print(a)#[6, 1, 2, 3, 4, 5, 8, 7, 2, 22, 5] #数组排序:sort print(a)#[6, 1, 2, 3, 4, 5, 8, 7, 2, 22, 5] a.sort()#正序 print(a)#[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 22] a.sort(reverse=True)#倒序 print(a)#[22, 8, 7, 6, 5, 5, 4, 3, 2, 2, 1] #用循环打印数组 print("[",end="") for i in a: print(i,",",end="") print("\b]") #[22 ,8 ,7 ,6 ,5 ,5 ,4 ,3 ,2 ,2 ,1 ] #循环改变列表值: for i in range(len(a)): a[i]+=2#a列表的值依次加2 print(a) #用list()进行转型,参数中[5]不能代表一个列表,但[5,]可以代表 c=list((5,5,6)) print(c)#[5, 5, 6] d=list((5,)) print(d)#[5] del a[0]#删除第一个元素 del a#删除a列表 #列表的嵌套,不建议超过3层 d=[[1,2,3],[4,0],[5,6,7,8],[1]] print(d)#[[1, 2, 3], [4, 0], [5, 6, 7, 8], [1]] print(d[1][0])#4
元组:
#元组是一个不可变的序列 #元组一般保存列表或其他可变的序列的最终结果 #元组没有增删改,效率高 a=(6,2,5,4,5) print(a)#(6, 2, 5, 4, 5) print(a[::-1])#(5, 4, 5, 2, 6) print(a[1::-1])#(2, 6)
字典:
#字典:元素是一对k—v键值对,是一种存储数据的容器 a={"name":"张三","age":18,"height":180} b={"1":66,2:33,3:89,8:10}#print(b[0])会报错 #用get()获取 print(b.get(2))#66 print(b.get("1"))#66 print(b.get(10))#10 #clear清空字典,内存,空字典仍在 #del删除字典部分内容 c={"user1":a,"user2":b} print(c.get("user1").get("age"))#18 a["class_name"]="cloud01" a.pop("age") print(a)#{'name': '张三', 'height': 180, 'class_name': 'cloud01'} #a.popitem()#删除最后一个k-v #a.update({"class_name":"clound03","abc":123})#批量更新 k=a.keys() print(k)#dict_keys(['name', 'height', 'class_name'])里面是列表 #常用的遍历方式 for key in k: print(key) print("--",a.get(key)) for k,v in a.items(): print(k,v) d=[k.upper() for k,v in a.iteams() if k!='张三'] #中括号代表输出的是列表,中括号内的含义: # for k,v in a.iteams(): # if k!='张三': # k.upper()
列表三种排序方式:
import random lt=list() for i in range(10): lt.append(random.randint(20,100)) print(lt) #选择排序 for i in range(len(lt)-1): min=lt[i] minIndex=i for j in range(i+1,len(lt)): if min>lt[j]: min=lt[j] minIndex=j else: lt[minIndex]=lt[i] lt[i]=min print(lt) #冒泡排序:从前向后,两个相邻元素依次比较,不符合顺序的,两者交互位置 #每一轮能确定最大值,全部运行就有序了 for i in range(len(lt)-1): flag=False for j in range(len(lt)-i-1): if lt[j]>lt[j+1]: tmp = lt[j] lt[j]=lt[j+1] lt[j+1]=tmp flag=True if not flag: break print(lt) #插入排序: #在有序列表中插入一个新元素的逻辑 a=[10,20,30,40,50,60] num=int(input("请输入一个正整数:")) a.append(0) index=len(a)-2 flag=False while index>=0: if num<a[index]: a[index+1]=a[index] else: a[index+1]=num flag = True break index-=1 if not flag: a[0]=num print(a) #插入排序:即从第一个元素开始,后面所有的元素都使用插入4逻辑写入,则全部排完一定有序 for i in range(1,len(lt)): index=i-1 num=lt[i] flag=False while index>=0: if num<lt[index]: lt[index+1]=lt[index] else: lt[index+1]=num flag=True break index-=1 if not flag: lt[0]=num print(lt)