數組、數組循環切片、字符串方法、字典、元組
一、數組
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)