最近繼續學習了python的一些數據類型的基礎知識,話很少說,進入正題:python
list:列表,又名數組,是python中經常使用的數據類型之一,它能夠做爲一個方括號內的逗號分隔值出現,而且不限制數據類型,只要以逗號分隔開就好數組
如:app
上述代碼方括號內稱爲元素,每個元素對應一個下標,下標又稱爲:索引,指針,值得注意的是他是從左至右是從0開始計數的,從右向左是從-1開始計數的學習
下面介紹對列表基本的操做,增,刪,改,查操做;spa
增:增長列表的元素,能夠用方法.append,.insert,他倆的區別就是append默認添加至列表的尾部,insert能夠指定添加位置,list裏的元素能夠重複添加,不會去重;3d
刪:刪除列表元素,方式有三種:.pop,.remove,del關鍵字等,remove括號裏要緊跟元素,pop,del需通過下標定義元素進行刪除指針
改:即對列表裏的元素進行更改操做,用下標定位到元素,進行新的賦值便可對象
stuname[0]='zhangxilu'
查:以下,定義一個新的列表,咱們能夠對列表進行元素出現次數的計數,打印元素的下標,對元素進行反轉,對列表進行排序(注意,排序只能針對number類型有效,其餘會報錯!!!)blog
對兩列表進行合併等操做;排序
下面介紹關於列表的切片操做,即對列表元素進行花式取值操做;注意:切片時,都是用下標對元素進行定位;
l=list(range(1,101))#生成1--100的數字列表
print(l[2:8])#這裏的數字指元素的下標,是指從第三個元素取值,取至第9個元素,注意:因切片操做時不包含後面的值的,即顧頭不顧尾,因此輸出元素不包括9,輸出列表爲[3.4.5.6.7.8]
print(l[0:5])#從第一個元素取至第五個元素
print(l[:5])#當從頭開始標開始取元素時(即從0下標開始取元素),0下標能夠忽略不寫,效果與上例相同
print(l[::2])#從頭取到尾,表明全部元素,後面的2指步長,即隔兩個元素取元素
下面介紹數組嵌套進行切片,以下包括1維數組,2維數組,多維數組
nums1=[1,2,3]
nums2=[1,2,3,[4,56]]
nums3=[1,2,3,4,5,["a","b","d","e",["一","二","三"]],["四","五"]]
定位多維數組的元素,就是層層剝離,找到目標元素便可,如,打印上述數組中的「三」元素
print(nums3[5][4][2])
或從左向右打印也能夠,怎麼方便怎麼來,以下,輸出的都是同一個元素
print(nums3[-2][-1][-1])
tuple:元組 能夠理解爲不可變的列表,由於他一旦被建立,其內容就不能改變了,不能進行增長和刪除操做,用小括號()表示,對於他的操做只有簡單的兩種,.count,.index,
對他的元素出現次數計數,以及輸出元素的下標,也可進行元組的擴充等操做
dictionary:字典字典是另外一種可變容器模型,且可存儲任意類型對象,字典中的每一個鍵值對用冒號分隔,鍵值之間用逗號分隔,全部的鍵值對放在 { } 裏如:
studens={"name":"zhangdalu",
"sex":"男",
"addr":"shenzhen",
"phone":"1222222"}
值得注意的是字典裏的k--v是成對出現的,且key是不可變的,能夠用數字,字符串,元組定義,且是惟一的,自帶去重複性,value值能夠不惟一,對應的咱們也能夠對字典裏的元素進行增刪改查操做
增:
studens["age"]=18
print(studens)
結果以下:
刪:方法有兩種 .pop或用關鍵字del均可以刪除
studens.pop("age")或del students("age")
print("刪除後的",studens)
結果以下:
改:即給key值賦予新的值便可
studens["name"]="lulu"
print(studens)
查:方式有兩種,以下
print(studens["age"])
print(studens.get("age"))
上述代碼的區別是,第一種字典裏沒有該key時,會報錯,程序會中斷,第二種get方式,會返回默認值,沒有默認值就返回「none」;
字典裏面打印key,value,能夠用以下方式:
print(studens.keys())
print(studens.values())
這裏插一個有意思的方法,以下
print(studens.setdefault("hahah",values))
他和students.get很類似,不一樣在於,當字典中不存在後續跟的keys時,會自行添加進去;值也能夠自定義,沒有值就返回「none」
當字典中存在後面跟的keys時,對應的values值不會賦予字典中
---------------------------分割線---------------------------
寫了一個註冊登陸程序,此次的不一樣是,從文件中帳號密碼,註冊時與文件進行對比,看用戶是否存在,難點在於把文件內的字符串轉化爲列表或字典,而後取到表明用戶名的值,進行對比
下面介紹列表的方式,字典還在研究中;
f = open("username.txt","a+")#打開uaername文件,讀取裏面的值
f.seek(0)#指針從頭開始
users = []#定義一個用戶list
pwd = []#定義一個密碼列表;註冊接口能夠暫不考慮
for line in f:#對文件裏的行進行循環(默認一行一個用戶一個密碼,一行多個帳戶密碼的狀況,還在研究)
username = line.split(",")[0]#每一行按照「,」進行分割分割爲一個數組,取數組的第一個元素值(默認存的的是用戶名)
users.append(username)#把取到得值放進新的列表users裏
password = line.split(",")[1]#取第二個元素
pwd.append(password)#取到的元素放進pwd列表裏
後面註冊成功後須要把用戶名寫入文件中,以下:
f.write(username+',' + pwd+'\n')#把註冊成功的用戶名,密碼寫進文件裏,以「,」分割,且自動換行
f.close()#關閉文件
後續會補充字典的方法,good night!!!
這會是字典的使用方法
# users = {}#定義一個字典# for line in f:# name = line.split(":")#把f文件按每一行按「:」分隔成一個數組,即name(默認一行一個帳戶密碼,多個還在研究當中)# users[name[0]] = name[1].strip()#取name數組的第一個元素爲key,第2個元素爲value,把value值賦予key便可# print(users)