数组、数组循环切片、字符串方法、字典、元组
一、数组
1、一维数组,就是list:
1 strus = ['xiaohei','xiaobai','xiaohuang'] 2 print(strus)# 输出全部数组 3 print(strus[2])# 小标,角标,索引 0 1 2 3 4 print(strus[-1])# 最后一个元素下标是-1 5 # 6 # 增加append 7 strus.append('chenmenmg') # append,增加到末尾 8 # 增加insert 9 strus.insert(0,'chenmeng1')# insert,在指定是位置增加元素,如果指定的小标不存在,那么就在末尾添加 10 strus.insert(6,'chenmen6') 11 strus.insert(-1,'chenmeng7')# 注意:insert不要用-1,位置不对 12 print(strus) 13 # 14 # 修改,即赋值 15 # 替换strus[6]strus[7] 16 strus[0]='chenmeng0' 17 t=strus[6] 18 strus[6]=strus[5] 19 strus[5]=t 20 print(strus) 21 22 # 查找某个字符在字符串中 23 if 'xiaohei' in strus: 24 print('aaaaaaaa') 25 # 查看某个元素在数组里面的个数,count,不存在返回0 26 print(strus.count('chenmenmg')) 27 # 找到元素的索引,如果有多个找到第一个,如果找到一个不存在的,就报错 28 print(strus.index('chenmenmg')) 29 30 # 删除pop 31 print('删除',strus)# pop默认删除最后一个元素,可以指定下标删除 32 strus.pop(0) 33 strus.pop() 34 print(strus.pop())# 删除直接打印,会将删除的值返回 35 print(strus) 36 37 # 删除remove 删除不会打印自己 38 strus.remove('xiaohei') 39 print(strus) 40 41 # 删除del 删除指定元素 42 del strus[0] 43 print(strus) 44 45 # clear 清空整个list 46 strus.clear() 47 print(strus) 48 49 # reverse,反转list 50 strus = [1,2,3] 51 print(strus) 52 strus.reverse() 53 print(strus) 54 55 # sort 排序,默认升序 56 strus = [11,200,3] 57 print(strus) 58 strus.sort() 59 print(strus) 60 strus.sort(reverse=True)# 注意:按照降序排,sort指定reverse=True 61 print(strus)
2、多维数组
1 # 二维数组 2 two =[1,2,[31,32]] 3 print(two) 4 print(two[2][0]) 5 # 三维数组 6 three =[2,5,[1,7,[0,10]]] 7 print(three) 8 print(three[-1][-1][-1])# 打印最后一个 9 10 # 合并两个数组extend 11 two.extend(three) 12 print(two) 13 print(three)
3、list循环
1 # 循环 2 names =['cm1','cm2','cm3'] 3 for name in names: #如果直接for循环一个list的时候,那面每次循环的值是这个list里面的元素,换行打印list数组里面的元素 4 print(name) 5 6 # 循环,同时打印索引和数组值enumerate(枚举),必须含有两个参数 7 for index, item in enumerate(names):#i,v随意注册的变量 8 print ("index = %s,value = %s" % (index, item)) # index = 0,value = cm1 9 10 # 注意:循环list时,不能有删除的操作,因为一旦删除一次,list就变化,如下:删除所有奇数 11 12 # 错误写法 13 li = [1,1,2,3,4,5,6,7,8,9] 14 for i in li: 15 if i%2!=0: 16 li.remove(i) 17 print(li) 18 19 # 正确写法 20 # remove(),()中是值 21 li = [1,1,2,3,4,5,6,7,8,9] 22 li2 =li[:] 23 for i in li2: 24 if i%2!=0: 25 li.remove(i) 26 print(li) 27 28 # 注意:不能用li2=li,指针一样 29 # 注意:li2=li浅拷贝 30 # 注意:li2 =li[:]深拷贝 31 # 深浅拷贝的区别,内存地址是否变化 32 33 # 打印list的地址id() 34 li2=li 35 print("Li地址:",id(li)) 36 print("Li2地址:",id(li2))
4、list切片
1 # 切片:list取值的一种方式,顾头不顾尾 2 new_names = names[0:1] #取names【0】直到name【1】,不取name【1】:['cm1'] 3 new_names = names[:1] # 如果切片前面一个值不写的话,从开头开始取,输出['cm1'] 4 print(names[1:]) # 如果切片后面一个值不写的话,取末尾:['cm2', 'cm3'] 5 print(names[:])# 如果切片前面后面的值都不写的话,全部取出来 6 7 # 步长,常用概率高:间隔几个取一个 8 nums = [1,2,3,4,5,6,7,8,9] 9 print(':1',nums[::2]) #:1 [1, 3, 5, 7, 9] 10 11 # 步长是正数时,从左往右取 12 # 步长是负数时,从右往左取 13 print(':1',nums[::-1]) #等价于反转:1 [9, 8, 7, 6, 5, 4, 3, 2, 1] 14 print(nums[-1:-3:-1])#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值 15 16 # 切片同样适用于字符串,字符串也有下标,空格算一个字符 17 title = '今天圣诞节' 18 print(title[2:]) #圣诞节 19 for t in title: 20 print(t)