溫馨提示:手機(jī)觀看時(shí),代碼塊可以左右滑動
本文內(nèi)容
- 列表新建
索引
切片
序列的加法和乘法
成員資格
列表方法
- 元組
- 字典
字典常用方法
寫在前面
- Python內(nèi)置了多種序列畔况,列表和元組是其中最常用的兩種鲸鹦;
- 列表和元組的主要區(qū)別在于,列表可以修改跷跪,而元組不可以馋嗜;
- 常規(guī)操作包括索引、切片吵瞻、插入葛菇、刪減等。
列表新建
- 新建一個(gè)列表橡羞;
- 列表由中括號為容器眯停,每個(gè)元素之間用逗號間隔。
#新建一個(gè)列表:
alist = [1,"nihao","hello","你好"]
print(alist)
索引
- 列表中所有元素都有編號—從0開始遞增;
- 列表中第一個(gè)元素編號為0卿泽,最后一個(gè)元素編號為-1莺债。
alist = [1,"nihao","hello","你好"]
alist[0] #取出alist中的第一個(gè)元素1
alist[-1] #取出alist中的最后一個(gè)元素"你好"
alist[2] #取出alist中的第三個(gè)元素"hello"
切片
- 用索引我們可以訪問單個(gè)元素,而切片可以讓我們訪問多個(gè)元素
- 使用兩個(gè)索引值,并用冒號分隔
blist = [1,2,3,4,5,6,7,8,9,10] #新建一個(gè)列表blist
blist[0:3] #取出blist中前3個(gè)元素[1,2,3]
blist[7:10] #取出blist中后3個(gè)元素[8,9,10]
#添加步長參數(shù)
blist[0:4:2] #按步長為2,取出blist中前4個(gè)元素.[1,3]
#小應(yīng)用:提取域名
wangzhi = input("請輸入網(wǎng)址") #輸入http://www.xiaokeai.com
yuming = wangzhi[11:-4] #截取域名
print(yuming) #返回 xiaokeai
序列的加法和乘法
[1,3,4]+[4,6,7] #運(yùn)行結(jié)果為[1, 3, 4, 4, 6, 7]
[1,3,4]*4 #運(yùn)行結(jié)果為[1, 3, 4, 1, 3, 4, 1, 3, 4, 1, 3, 4]
成員資格
- 用in判斷元素是否在列表中,存在返回True,不存在返回False
#判斷輸入的內(nèi)容是否存在
users = ["王二麻子","李大嘴","趙四","大墩子"] #簡歷列表users
user_name = input("請輸入你的名字:") #輸入
user_name in users
列表方法
- append 將一個(gè)對象附加到列表結(jié)尾
- insert 將一個(gè)對象插入到列表中的指定位置
- extend 將多個(gè)值添加進(jìn)列表末尾
lst = [3,7,32,8,13,34] #創(chuàng)建新列表lst
lst.append(3) #添加新元素3
print(lst) #打印結(jié)果[3, 7, 32, 8, 13, 34, 3]
tst = [3,7,32,8,13,34] #創(chuàng)建新列表tst
tst.insert(3,"hello") #插入新元素,使得新元素的索引為3
print(tst) #打印結(jié)果[3, 7, 32, 'hello', 8, 13, 34]
ist = [3,7,32,8,13,34] #創(chuàng)建新列表ist
a = [1,3,4] #創(chuàng)建新列表a
ist.extend(a)
print(ist) #打印結(jié)果[3, 7, 32, 8, 13, 34, 1, 3, 4]
#extend添加與加法(ist+a)的主要區(qū)別是,extend改變了ist的內(nèi)容,而加法沒有改變ist
copy 復(fù)制列表
count 計(jì)算出指定的元素在列表中出現(xiàn)了多少次
index 查找指定值第一次出現(xiàn)的索引
a = [1,2,3] #創(chuàng)建新列表a
b = a.copy() #將a復(fù)制給b
print(b) #輸出結(jié)果[1,2,3]
b[1] = 4 #改變b中的元素
print(a,b) #a不會被改變,輸出[1, 2, 3] [1, 4, 3]
k = ["two","to","san","two",["two","two"]] #新建列表k
k.count("two") #統(tǒng)計(jì)k中"two"的個(gè)數(shù),返回結(jié)果2
k.index("to") #返回to第一次出現(xiàn)的索引值,結(jié)果為1
- pop 從列表中刪除末尾元素,并返回這一元素
- remove 用于刪除第一個(gè)為指定值的元素
- clear 清空列表內(nèi)容
- del 刪除列表中元素(del語句不屬于方法)
x = [1,2,3] #創(chuàng)建新列表x
x.pop() #刪除了最后一個(gè)元素,并返回3
print(x) #輸出結(jié)果[1,2]
y = [4,65,86,4,56,5] #創(chuàng)建新列表y
y.remove(4) #刪除列表中第一個(gè)4
print(y) #輸出結(jié)果[65, 86, 4, 56, 5]
j = [5,432,5425.6,51] #創(chuàng)建新列表j
j.clear() #清除列表
print(j) #打印結(jié)果[]
l = ["to","be","am","is","are"] #創(chuàng)建新列表l
del l[2] #刪除l中索引為2的元素
print(l) #輸出結(jié)果['to', 'be', 'is', 'are']
- sort 對列表進(jìn)行排序,默認(rèn)為從小到大排序,或者按字母順序排序。調(diào)整參數(shù)可以調(diào)整排序方式签夭。
h = [32,54,6,8,2,543,6576,243]
h.sort()
print(h) #輸出結(jié)果[2, 6, 8, 32, 54, 243, 543, 6576],按數(shù)字大小
h.sort(reverse=True)
h.reverse()
print(h) #調(diào)整sort中reverse參數(shù)或者直接使用reverse方法可以倒序排序,輸出結(jié)果為[6576, 543, 243, 54, 32, 8, 6, 2]
y = ["p","y","t","h","o","n"]
y.sort()
print(y) #輸出結(jié)果['h', 'n', 'o', 'p', 't', 'y'],按字母先后順序
name = ["dhjak ","jkl","dsafd","dasjkdal"]
name.sort(key=len) #調(diào)整sort的key參數(shù),可以實(shí)現(xiàn)按文本長度排序
print(name) #輸出結(jié)果['jkl', 'dsafd', 'dhjak ', 'dasjkdal']
元組
- 以小括號形式體現(xiàn)的數(shù)據(jù)集齐邦,不同元素之間用逗號隔開;
- 元組許多功能與列表相似第租,唯一區(qū)別是不能進(jìn)行修改元素措拇。語法也很簡答,在這就不一一贅述慎宾。
字典
- 字典由“{}”丐吓、“鍵”以及“值”組合而成,鍵和值之間用“:”相連趟据。每個(gè)鍵值對之間由“,”相隔券犁;
- 字典是一種無序的映射的集合。包含若干個(gè)鍵值對之宿;
- 其中字典中的鍵通常采用字符串族操,但也可以用數(shù)字、元組等類型比被;字典值則可以是任意類型色难。
思考:有了列表和元組兩個(gè)容器,我們?yōu)槭裁催€需要用字典呢等缀?
接下來給大家舉一個(gè)例子枷莉,用該例子說明我們字典的優(yōu)勢。
#開學(xué)了尺迂,現(xiàn)在我們這有一份學(xué)員名單笤妙,以及每個(gè)學(xué)員的性別,如下:
name = ["zhao","qian","sun","li","zhou","wu","zheng","wang"]
gender = ["F","M","F","F","M","F","M","M"]
#現(xiàn)在我們想知道同學(xué)"sun"的性別噪裕,于是我們寫了以下代碼:
print(gender[name.index("sun")])
#上面這行代碼當(dāng)然是可以為我們反饋正確結(jié)果的,但是這個(gè)代碼寫起來非常麻煩蹲盘。如果我們建立了字典,將會大大簡化我們的代碼膳音。步驟如下:
xueyuan = {"zhao":'F',"qian":'M',"sun":'F',"li":'F',"zhou":'M',"wu":'F',"zheng":'M',"wang":'M'}
print(xueyuan["sun"])
從剛才這個(gè)小例子,我們看到了字典的優(yōu)勢召衔,也知道了如何建立字典容器。接下來我們來看字典的基本操作:
- len(dict)返回dict字典中包含的項(xiàng)(鍵值對)個(gè)數(shù);
- dict[a]返回與鍵a相關(guān)聯(lián)的值;
- dict[b] = value 講b值關(guān)聯(lián)到key2;
- del dict[c] 刪除c的項(xiàng);
- e in d 檢查字典d是否包含鍵為e的項(xiàng);
dict1 = {"name":"zhang","age":10} #創(chuàng)建字典
print(len(dict1)) #用函數(shù)len()求出字典dict1的鍵值對個(gè)數(shù),返回2
print(dict1["name"]) #通過"[鍵]"可以查出該鍵所對應(yīng)的的值,返回"zhang"
dict1["age"]=12 #更改age所對應(yīng)的值
print(dict1) #返回結(jié)果{'name': 'zhang', 'age': 12}
del dict1["age"] #刪除"name"項(xiàng)
print(dict1) #返回結(jié)果{'name': 'zhang'}
"name" in dict1 #檢查字典dict1中是否包含"name"項(xiàng),返回True
字典的常用方法
- pop() 從字典中刪除,并返回映射值
- popitem() 從字典中刪除并返回鍵值對元組
- clear() 刪除字典內(nèi)的全部對象
d1 = {"a":1,"b":2,"c":3} #創(chuàng)建字典d1
d1.pop("a") #刪除鍵為a的鍵值對,并且返回值1
print(d1) #返回{'b': 2, 'c': 3}
d1.popitem() #隨機(jī)的刪除d1中某一對鍵值對,并返回鍵值對元組祭陷。因?yàn)樽值涫菬o序的苍凛,不能確定他每次刪除的是哪一項(xiàng)鍵值對。如果本身字典為空兵志,在執(zhí)行該語句會報(bào)錯(cuò)醇蝴。
d1.clear() #清除字典內(nèi)全部對象
print(d1) #返回{}
- copy() 復(fù)制字典對象
x = {"name":"張三","age":"9"} #創(chuàng)建一個(gè)字典
y = x #直接復(fù)制時(shí),x和y引用同一個(gè)字典
print(x,y) #返回{'name': '張三', 'age': '9'} {'name': '張三', 'age': '9'}
y["name"]="李四" #將y中鍵"name"的值改為"李四"
print(x) #x也跟隨改變,{'name': '李四', 'age': '9'}
#可以用方法copy()解決這個(gè)問題
y = x.copy() #y引用復(fù)制字典
y["name"] = "王五" #講y中鍵"name"的值改為"王五"
print(y,x) #x也跟隨改變,{'name': '王五', 'age': '9'} {'name': '李四', 'age': '9'}
- get(key[,default]) 返回key鍵映射的值。如果key不存在想罕,返回空值悠栓。可以用default參數(shù)指定不存在的鍵的返回值按价。如下例
x = {"name":"張三","age":"9"} #創(chuàng)建一個(gè)字典
x.get("name") #返回鍵"name"對應(yīng)值"'張三'
x.get("gender") #沒有"gender"鍵,所以返回空
x.get("gender","none") #設(shè)定default參數(shù),當(dāng)沒有"gender"鍵,返回"none"
- setdefault(key[,default]) 用該方法返回映射值或者添加鍵值對惭适。
- upgrade() 為字典添加鍵值對,若字典已存在同名的鍵俘枫,則映射值被覆蓋腥沽。
x = {"name":"張三","age":"9"} #創(chuàng)建一個(gè)字典
x.setdefault("name") #返回鍵"name"對應(yīng)值"'張三'
x.setdefault("gender") #添加新鍵值對
print(x) #返回{'name': '張三', 'age': '9', 'gender': None},默認(rèn)給None值
x.setdefault('phone','123') #添加新鍵值對
print(x) #返回{'name': '張三', 'age': '9', 'gender': None, 'phone': '123'}
- items() 返回鍵值對視圖
- keys() 返回字典中所有鍵的視圖
- values() 返回字典中所有值的視圖
y = {'name': '張三', 'age': '9', 'gender': None, 'phone': '123'} #創(chuàng)建一個(gè)字典
x.items() #返回鍵值對視圖 dict_items([('name', '張三'), ('age', '9'), ('gender', None), ('phone', '123')])
x.keys() #返回所有鍵的視圖 dict_keys(['name', 'age', 'gender', 'phone'])
x.values() #返回所有值的視圖 dict_keys(['name', 'age', 'gender', 'phone'])
上一篇:Python基礎(chǔ)筆記2-字符串方法(更新中)
下一篇:Python基礎(chǔ)筆記4-函數(shù)編寫與傳參方式