python組合數(shù)據(jù)類型

python 數(shù)據(jù)類型概覽

python組合數(shù)據(jù)類型表.png

重要知識(shí)點(diǎn):

1 , 通過(guò)索引的方式提取元素或切片吱肌,只適用于有序序列奴饮,而無(wú)序序列則不行

2,可變序列和不可變序列的區(qū)別在于可變序列可以對(duì)變量本身修改瑟幕,而不可變序列不能對(duì)變量本身修改承匣,但是我們可以創(chuàng)建一個(gè)新的變量。

考點(diǎn)一:list

1 ) list的特點(diǎn):

  • 所有元素放在[]中稠屠,相鄰元素用逗號(hào)分隔

  • 列表內(nèi)元素有順序峦睡,可以使用索引,且元素類型可以不同

  • 線性的數(shù)據(jù)結(jié)構(gòu)权埠,元素可變

  • 個(gè)人認(rèn)為和R語(yǔ)言的向量類似榨了,有順序,可以索引攘蔽,可以改變龙屉。

  1. list 的創(chuàng)建
# 直接用[]號(hào)創(chuàng)建
a_list = ["武漢加油!"满俗,"中國(guó)加油转捕!"]
# 可以 用list() 函數(shù)將可迭代變量轉(zhuǎn)化為列表類型
a = "text"
a_list = list(a)

3 )list的索引( 和字符串的索引訪問(wèn)方式一樣)

4)list常用的方法:

方法 用法
count(value) 返回列表中value的個(gè)數(shù)
append(x) 列表尾部追加元素,沒(méi)有返回值唆垃,表示原地修改
insert(index , x) 在指定的索引index 處插入元素x
extend(iterable) 將可迭代對(duì)象的元素添加進(jìn)來(lái)
remove(value) 從左到右查找第一個(gè)匹配的value值五芝,移除該元素
pop([index]) 將列表下標(biāo)為index的元素刪除并返回
reverse() 列表元素反轉(zhuǎn)
clear() 清除,列表所有元素辕万,剩下一個(gè)空列表
sort(key = None , reverse = Flase) 將列表元素排序枢步,返回None , reverse = True ,降序
index(value[ , start , stop]) 通過(guò)value值沉删,從指定區(qū)間查找列表內(nèi)的元素是否匹配
copy() 生成一個(gè)新列表,復(fù)制list所有元素

示例:

#  創(chuàng)建列表a
a = [1,2,3,4,5]

##################  向列表中添加元素的三種方法
a.append("wo")                           #   返回 [1, 2, 3, 4, 5, 'wo']
a.insert(1 , "wo")                         #   返回[1, 'wo', 2, 3, 4, 5] 醉途, 在指定位置添加
a.extend([7,8,9])                          #   返回[1, 2, 3, 4, 5, 7, 8, 9]

##################  刪除列表中元素的4中方法 pop() , remove() , clear()
a.pop(1)                                         #     pop(index),輸入索引值矾瑰, 返回[1, 3, 4, 5]
a.remove(1)                            #     remove(值) , 輸入想刪除的元素,返回[2, 3, 4, 5]
a.clear()                                          #     刪除a中所有元素结蟋,返回空列表
del  a[0]                                           #     刪除a[0] , 返回[2, 3, 4, 5]
del                                                     #     整個(gè)刪除a 

##################  統(tǒng)計(jì)和尋找元素的方法 count() , index()
b = [1,1,1,1,2,3,4,5,5,6]
# count() 用于返回列表中指定元素出現(xiàn)的次數(shù)
b.count(1)                                      #  返回4
# index()  脯倚, 返回指定元素在列表中首次出現(xiàn)的位置
b.index(5)                                      # 返回值為7

##################   對(duì)列表進(jìn)行排序的方法 sort() , reverse()
c = [1,7,4,2,56,32,71]
# sort方法默認(rèn)升序 , 但是加上參數(shù) reverse = T嵌屎,就是倒序
c.sort()                                             #無(wú)返回值推正,原地修改  此時(shí) c = [1, 2, 4, 7, 32, 56, 71]
c.sort(reverse = True)                # 同樣是原地修改  此時(shí) c = [71, 56, 32, 7, 4, 2, 1]
# reverse() 將列表元素反轉(zhuǎn)
c.reverse()                                      # 無(wú)返回值 ,原地修改 此時(shí) c = [71, 32, 56, 2, 4, 7, 1]

5)列表支持的運(yùn)算符 + *

d = [1,2,3]
# 注意宝惰,列表只能和列表類型相加
d = d + [4]  /  d += [4]                          #  返回[1,2,3,4]
# 乘法也是一樣植榕,不過(guò)是列表里的元素重復(fù)罷了
d = d * 2    / d *= 2                               # 返回[1,2,3,1,2,3]

考點(diǎn)二:元組

元組的特點(diǎn):

  • 所有元素放在圓括號(hào)內(nèi)()
  • 如果元組中只有一個(gè)元素,必須在最后增加一個(gè)逗號(hào) 尼夺,
  • 使用tuple創(chuàng)建空元組
  • 支持雙向索引尊残,但不可變!(所以我們?cè)诹斜砝飳W(xué)的增加淤堵、刪除寝衫、修改、排序都沒(méi)辦法使用)
  • 個(gè)人認(rèn)為元組可以類比字符串

元組和列表的異同點(diǎn):

元組和列表的異同.png

注意:del 在元組里并不能刪除元素拐邪,而是將整個(gè)元組刪除慰毅。

考點(diǎn)三:字典

1,字典的特點(diǎn):

  • dict()生成一個(gè)空字典扎阶,也可以直接用{}生成
  • 鍵和值通過(guò)冒號(hào)連接組成的集合{key1 : value1, key2 : value2 , key3:value3}
  • 字典內(nèi)的鍵值對(duì)沒(méi)有順序且不能重復(fù)
  • 元素類型可以不同
  • 字典中是以鍵值對(duì)存儲(chǔ)的汹胃,因此鍵就是值的索引
  • 字典可變,可以存儲(chǔ)任何類型
  • 個(gè)人理解字典就跟我們?nèi)粘S玫淖值湟粯佣危心夸涀偶ⅲ袃?nèi)容,通過(guò)目錄訪問(wèn)內(nèi)容

2惰赋,字典的訪問(wèn):類似查字典宰掉,一個(gè)key 對(duì)應(yīng)一個(gè)value

d = {"name" : "xiaowang" , "age" : "18" ,"sex":"man"}
d["name"]             # xiaowang 
d["face"]                # 返回 KeyError錯(cuò)誤
# 字符串,列表赁濒,元組等采用數(shù)字索引贵扰,字典采用key 索引

3,字典的操作方法:

方法 描述
d.keys() 返回字典所有鍵信息
d.values() 返回字典中所有值信息
d.items() 返回字典中所有的鍵值對(duì)(鍵值對(duì)以元組表示)
d.get(key , set) 鍵存在則返回相應(yīng)值流部,不存在則返回默認(rèn)值set
d.clear() 清空字典,留下{}
d.popitem() 隨機(jī)從字典取出一個(gè)鍵值對(duì)纹坐,以元組形式返回枝冀,同時(shí)將該鍵值對(duì)返回
d.pop(key ,set) 鍵存在則返回相應(yīng)值舞丛,同時(shí)刪除鍵值對(duì),否則返回set
d = {"name" : "xiaowang" , "age" : "18" ,"sex":"man"}
d.keys()          #   返回 dict_keys(['name', 'age', 'sex'])
d.values()      #   返回 dict_values(['xiaowang', '18', 'man'])
#  一般我們都希望更好的使用這個(gè)結(jié)果果漾,我們用list轉(zhuǎn)化為列表使用
list(d.keys())     #  返回['name', 'age', 'sex']
list(d.values()) #  返回['xiaowang', '18', 'man']
####取所有鍵值對(duì)
d.items()        #dict_items([('name', 'xiaowang'), ('age', '18'), ('sex', 'man')])
print(list(d.items()))         #[('name', 'xiaowang'), ('age', '18'), ('sex', 'man')]
####取鍵對(duì)應(yīng)的值
d.get("name")          # 返回"xiaowang"
d.get("face", "noitem")   # 返回 noitem

###想刪除字典中的元素  用del
del d["name"]         #返回{'age': '18', 'sex': 'man'}

考點(diǎn)四:集合

1 球切, 集合的特點(diǎn):

  • 集合中的元素不可重復(fù),且元素類型是不可變類型
  • 集合元素沒(méi)有順序盅安,不能比較继找,不能排序
  • 用花括號(hào){}表示贪婉,沒(méi)有索引和位置的概念
  • 用set()創(chuàng)建,不能用{}

2鸵钝, 集合的4個(gè)操作符

操作符及運(yùn)算 描述
S-T 返回新集合,元素在S中而不在T中
S&T 返回新集合庐镐,元素是S和T的交集
S | T 返回新集合恩商,元素是S和T的并集
S^T 返回新集合,是S和T并集減去他們的交集

3必逆,集合操作方法:

方法 描述
add(x) 若x不在集合中怠堪,則把x增加到該集合中
remove(x) 若x在,則從集合中移除名眉,不在則報(bào)錯(cuò)
discard (x) 若x在粟矿,從集合刪除x,不在也不會(huì)報(bào)錯(cuò)
pop() 隨機(jī)刪除并返回集合中的一個(gè)元素
update() 返回集合元素個(gè)數(shù)
clear() 移除集合中所有元素
x in s x 是集合的元素,返回True ,否則返回Flase
x not in s x 不是集合的元素损拢,返回True ,否則返回Flase
### 向集合里添加元素 update()  , add()
##### add() 添加新元素陌粹,如果該元素存在則忽略該操作,不返回異常
a = {1,2,3}
a.add(4)                    #  返回{1,2,3,4}

#### update()方法合并另外一個(gè)集合的元素到當(dāng)前集合探橱,并自動(dòng)去重
a.update({4,5})       #  返回{1,2,3,4,5}

#### 刪除元素的方法 discard() , clear() , remove , pop()
s = {1,2,3}
s.pop()                        # 隨機(jī)刪除一個(gè)元素并返回元素
s.discard(5)               # 從集合中刪除一個(gè)特定元素申屹,但是此處沒(méi)5 ,所以沒(méi)有返回
s.remove(5)               # 此處沒(méi)5 隧膏,但是拋出異常

小知識(shí):利用集合不重復(fù)的特點(diǎn)哗讥,常常用于去重

a = [1,1,1,2,3,4,5,5,6,7]
set(a)                                #    {1, 2, 3, 4, 5, 6, 7}
list(set(a))                       #    [1, 2, 3, 4, 5, 6, 7]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胞枕,隨后出現(xiàn)的幾起案子杆煞,更是在濱河造成了極大的恐慌,老刑警劉巖腐泻,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件决乎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡派桩,警方通過(guò)查閱死者的電腦和手機(jī)构诚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铆惑,“玉大人范嘱,你說(shuō)我怎么就攤上這事送膳。” “怎么了丑蛤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵叠聋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我受裹,道長(zhǎng)碌补,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任棉饶,我火速辦了婚禮厦章,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砰盐。我一直安慰自己闷袒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布岩梳。 她就那樣靜靜地躺著囊骤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冀值。 梳的紋絲不亂的頭發(fā)上也物,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音列疗,去河邊找鬼滑蚯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抵栈,可吹牛的內(nèi)容都是我干的告材。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼古劲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼斥赋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起产艾,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疤剑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后闷堡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體隘膘,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年杠览,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弯菊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡踱阿,死狀恐怖误续,靈堂內(nèi)的尸體忽然破棺而出吨悍,到底是詐尸還是另有隱情,我是刑警寧澤蹋嵌,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站葫隙,受9級(jí)特大地震影響栽烂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恋脚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一腺办、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糟描,春花似錦怀喉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至见间,卻和暖如春聊闯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背米诉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工菱蔬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人史侣。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓拴泌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親惊橱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚪腐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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