之前我們已經學習了如何定義字符串,比如現在有一個字符串存儲了班級中所有學生的名字:
stus='s1,s2,s3,s4,s5,...s43'
如果我們想取出其中某個學生的名字或者統計學生數量等,當然是存在方法可以實現,但是會很麻煩。
本章節會介紹list列表。
1、定義一個數組,用[],每個用,隔開
stus=['wldong','hhsun','xbxu'] # 0 1 2 # 索引、下標、角標,從0開始
2、定義一個空的列表
stus2=[]
stus3=list()
3、增加元素
stus.append('hejun') #在list的末尾增加一個元素 stus.insert(9,'yqzhou') #在指定的位置插入元素 # 如果指定的下標不存在,那么會把元素插入到最后 print('原始數據',stus)
4、查詢元素
print('單個取',stus[2]) #取xbxu print('第一個元素',stus[0]) #獲取第一個元素 print('最后一個元素',stus[-1]) #獲取最后一個元素
5、修改元素
#找到下標,然后進行修改 stus[4]='yaya' print('修改后',stus)
6、刪除元素
stus.pop() #默認刪除list里面最后一個元素 stus.pop(0) #可以指定下標進行刪除 stus.pop(9) #刪除指定下標不存在的元素,會報錯 del stus[0] #刪除指定下標的元素 stus.remove('xbxu') #刪除指定的元素 #1、list里面有多個一樣的元素 stus.append('yaya') #先添加一個重復的元素 print('添加重復的元素',stus) stus.remove('yaya') #當list中存在多個一樣的元素,只會刪除一個 #2、不存在的元素 stus.remove('rjguo') #刪除不存在的元素,會報錯 print('刪除后的結果',stus)
7、其他一些常用的方法
#1、查看某個元素在list里面的數量 count=stus.count('yaya') print('count方法',count) #2、清空list stus.clear() #3、復制list的內容 new_stus=stus.copy() print('復制后的值',new_stus) #4、反轉 stus.reverse() print('反轉后的值',stus) #5、排序 nums=[5,6,85,345,221,667,336] #先定義一個list nums.sort() #排序,從小到大 print('排序后的值',nums) nums.sort(reverse=True) #降序排序 print('排序反轉后的值',nums) #6、把一個list的元素,加入到另外一個list里面 stus.extend(nums) print('extend后的值',stus) #7、找某個元素的下標;如果元素不存在,會報錯 result=stus.index('hejun') print('list的下標',result)
8、list練習題
#需求內容如下: #登錄后,需要校驗 用戶不存在的話 要提示 #需要校驗是否為空 #賬號和密碼正確登錄成功 #需求分析如下: #1、輸入賬號密碼,最多輸錯3次 #2、校驗是否輸入為空 #3、校驗賬號是否存在 list.count() #4、從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('錯誤次數已經用盡!')
9、多維數組
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)
