Python基礎(chǔ)筆記3-列表点骑、元組酣难、字典


溫馨提示:手機(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ù)編寫與傳參方式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸠蚪,一起剝皮案震驚了整個(gè)濱河市今阳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茅信,老刑警劉巖盾舌,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蘸鲸,居然都是意外死亡妖谴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膝舅,“玉大人嗡载,你說我怎么就攤上這事∪韵。” “怎么了洼滚?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長技潘。 經(jīng)常有香客問我遥巴,道長,這世上最難降的妖魔是什么享幽? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任铲掐,我火速辦了婚禮,結(jié)果婚禮上值桩,老公的妹妹穿的比我還像新娘摆霉。我一直安慰自己,他們只是感情好颠毙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布斯入。 她就那樣靜靜地躺著,像睡著了一般蛀蜜。 火紅的嫁衣襯著肌膚如雪刻两。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天滴某,我揣著相機(jī)與錄音磅摹,去河邊找鬼。 笑死霎奢,一個(gè)胖子當(dāng)著我的面吹牛户誓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播幕侠,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帝美,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晤硕?” 一聲冷哼從身側(cè)響起悼潭,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舞箍,沒想到半個(gè)月后舰褪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疏橄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年占拍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晃酒,死狀恐怖表牢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掖疮,我是刑警寧澤初茶,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布颗祝,位于F島的核電站浊闪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏螺戳。R本人自食惡果不足惜搁宾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倔幼。 院中可真熱鬧盖腿,春花似錦、人聲如沸损同。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膏燃。三九已至茂卦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間组哩,已是汗流浹背等龙。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伶贰,地道東北人蛛砰。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像黍衙,于是被迫代替她去往敵國和親泥畅。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 列表: 前面已經(jīng)用了很多次列表琅翻,可以看出列表的功能是比較強(qiáng)大的位仁。本節(jié)將討論列表不同于元組和字符串的地方:列表的內(nèi)容...
    瀧汰泱閱讀 1,242評論 0 1
  • 本章將介紹一個(gè)新概念:數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是以某種方式(如通過編號)組合起來的數(shù)據(jù)元素(如數(shù)望迎、字符乃至其他數(shù)據(jù)結(jié)構(gòu))...
    Colleen_oh閱讀 545評論 0 0
  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)轿亮。通常情況下疮薇,聲明一個(gè)變量只保存一個(gè)值是遠(yuǎn)遠(yuǎn)不夠的,我們需要將一組...
    小黑y99閱讀 65,193評論 0 9
  • 數(shù)據(jù)結(jié)構(gòu)我注,是指通過某種方式(例如對元素進(jìn)行編號)組織在一起的數(shù)據(jù)元素的集合按咒,這些數(shù)據(jù)元素可以是數(shù)字或者字符,甚至可...
    千釋炎閱讀 774評論 0 0
  • 1.1.列表定義 列表是python中內(nèi)置有序可變序列但骨,列表的所有元素放在一對中括號“[]”中励七,并使用逗號分隔開;...
    Rolle_Wang閱讀 995評論 0 0