以前咱們已經學習瞭如何定義字符串,好比如今有一個字符串存儲了班級中全部學生的名字:數組
stus='s1,s2,s3,s4,s5,...s43'app
若是咱們想取出其中某個學生的名字或者統計學生數量等,固然是存在方法能夠實現,可是會很麻煩。學習
本章節會介紹list列表。spa
一、定義一個數組,用[],每一個用,隔開code
stus=['wldong','hhsun','xbxu'] # 0 1 2 # 索引、下標、角標,從0開始
二、定義一個空的列表blog
stus2=[] stus3=list()
三、增長元素排序
stus.append('hejun') #在list的末尾增長一個元素 stus.insert(9,'yqzhou') #在指定的位置插入元素 # 若是指定的下標不存在,那麼會把元素插入到最後 print('原始數據',stus)
四、查詢元素索引
print('單個取',stus[2]) #取xbxu print('第一個元素',stus[0]) #獲取第一個元素 print('最後一個元素',stus[-1]) #獲取最後一個元素
五、修改元素ip
#找到下標,而後進行修改 stus[4]='yaya' print('修改後',stus)
六、刪除元素rem
stus.pop() #默認刪除list裏面最後一個元素 stus.pop(0) #能夠指定下標進行刪除 stus.pop(9) #刪除指定下標不存在的元素,會報錯 del stus[0] #刪除指定下標的元素 stus.remove('xbxu') #刪除指定的元素 #一、list裏面有多個同樣的元素 stus.append('yaya') #先添加一個重複的元素 print('添加劇復的元素',stus) stus.remove('yaya') #當list中存在多個同樣的元素,只會刪除一個 #二、不存在的元素 stus.remove('rjguo') #刪除不存在的元素,會報錯 print('刪除後的結果',stus)
七、其餘一些經常使用的方法
#一、查看某個元素在list裏面的數量 count=stus.count('yaya') print('count方法',count) #二、清空list stus.clear() #三、複製list的內容 new_stus=stus.copy() print('複製後的值',new_stus) #四、反轉 stus.reverse() print('反轉後的值',stus) #五、排序 nums=[5,6,85,345,221,667,336] #先定義一個list nums.sort() #排序,從小到大 print('排序後的值',nums) nums.sort(reverse=True) #降序排序 print('排序反轉後的值',nums) #六、把一個list的元素,加入到另一個list裏面 stus.extend(nums) print('extend後的值',stus) #七、找某個元素的下標;若是元素不存在,會報錯 result=stus.index('hejun') print('list的下標',result)
八、list練習題
#需求內容以下: #登陸後,須要校驗 用戶不存在的話 要提示 #須要校驗是否爲空 #帳號和密碼正確登陸成功 #需求分析以下: #一、輸入帳號密碼,最多輸錯3次 #二、校驗是否輸入爲空 #三、校驗帳號是否存在 list.count() #四、從usernames裏面找到user的下標,而後去password中取對應的密碼 import datetime today=datetime.datetime.today() for i in range(3): username=input('username:').strip() #strip去掉一個字符串兩邊的空格 password=input('password:').strip() if username=='' or password=='': print('帳號/密碼不能爲空!') elif username not in usernames: #判斷元素是否存在某個list裏面 print('用戶不存在!') else: user_index=usernames.index(username) #登陸用戶的下標 p=passwords[user_index] if password==p: print('歡迎%s登陸,今天的日期是%s.'%(username,today)) break else: print('密碼錯誤!') else: print('錯誤次數已經用盡!')
九、多維數組
1)2維數組
nums1=[1,2,3,4,['a','b','c','d']] #2維數組 print(nums1[4][2]) #取c
2)3維數組
nums2=[1,2,3,4,['a','b','c','d',['test','dev','pre']]] #3維數組 print(nums2[4][4][1]) #取dev
3)練習:給帳號加上前綴
stus=['wldong','hhsun','hejun'] for stu in stus: #for循環直接循環一個list,就是取list裏面的每個元素 print('每次循環取的值',stu) username='szz-'+stu print(username)