Python基礎(chǔ)-列表/元組/字典/集合(4)

1.序列(sequence):

序列是py中最基本的一種數(shù)據(jù)結(jié)構(gòu)

可變序列
  • 列表
不可變序列
  • 字符串
  • 元組
序列基本操作:
  • +可以將相同的序列拼接成一個(gè)序列
  • *: 將序列重復(fù)指定次數(shù)
  • in : 檢查元素是否存在于指定列表/元組中
  • not in:檢查元素是否不存在指定列表/元組中
list=(12,None,'sh',True,3,5,6)+(5,5)
print(list*5)
print(5 in list)
print( 4 not in list)
幾個(gè)函數(shù)
  • max():序列中最大元素
  • min():序列中最小元素
  • index(a,b,c):指定元素在序列中第一次出現(xiàn)時(shí)索引,a為查找元素丑搔,b為起始索引振惰,c為結(jié)束索引尽楔,bc可以省略姑原,如果序列中沒(méi)有,則會(huì)拋出異常
  • count(a):統(tǒng)計(jì)指定元素出現(xiàn)的次數(shù)
list = (5, 3,5,8,9)
print(max('15881'))
print(min(list))
print(list.index(5,1,3))
print(list.count(5))

2.列表(List):

list是py中的一個(gè)對(duì)象。我們之前學(xué)習(xí)的對(duì)象只能保存單一的數(shù)據(jù),列表可以保存多個(gè)有序的數(shù)據(jù)牢撼。也可以?xún)?chǔ)存對(duì)象的對(duì)象夏醉。
列表的索引是從0開(kāi)始的爽锥。

列表的創(chuàng)建:
#列表中只有一個(gè)元素
list=[12]
#列表中有多個(gè)元素,并且元素類(lèi)型可以不同
list=[12,None,'sh',True]
#通過(guò)索引獲取列表中的元素授舟,如果索引超出救恨,則會(huì)拋出list index out of range異常
a=list[0] #12
#注意:其也可以逆序訪問(wèn),從-1開(kāi)始
c=list[-2] #sh
# 獲取列表元素?cái)?shù)量
b=len(list)
列表的方法:
  • append() :向列表最后添加元素释树,依此只能添加一個(gè)
  • insert(a,b): 向列表的指定位置插入元素肠槽,a為要插入的位置,b為角標(biāo)奢啥。需要注意的是,當(dāng)a超出角標(biāo)時(shí)秸仙,會(huì)插入最后一位。其也支持逆序桩盲,當(dāng)超出逆序時(shí)寂纪,會(huì)插入第一位。
  • extend(a) :將a序列(列表赌结,元組捞蛋,字符串)元素添加到當(dāng)前列表最后。如果是字符串柬姚,則會(huì)將字符串中每一個(gè)字符當(dāng)成一個(gè)元素拟杉。
  • clear(): 清空列表
  • pop(a): 根據(jù)索引刪除并返回被刪除的元素。若沒(méi)有指定a角標(biāo)量承,則刪除最后一個(gè)
  • del list[a] : 刪除指定角標(biāo)元素
  • remove(): 刪除指定元素搬设,如果列表中有多個(gè)相同元素,只會(huì)刪除第一個(gè)
  • reverse():反轉(zhuǎn)列表
  • sort():對(duì)列表進(jìn)行排序撕捍,默認(rèn)升序拿穴,如果需要降序則需要傳遞 reverse=True 注意:若列表中元素類(lèi)型不同,則無(wú)法排序
list=[12,None,'sh',True]
list.append('s')
list.insert(-8,'a') #之前的0號(hào)元素變?yōu)?號(hào)
a=[1,4]
list.extend(a)
list.extend('asd')
list.pop(1)
#反轉(zhuǎn)
list.reverse()
#降序
a.sort(reverse=True)
print(list)
list.clear()

切片

指從現(xiàn)有列表中忧风,獲取一個(gè)子列表默色。

  • 語(yǔ)法1: 列表[起始:結(jié)束]
    通過(guò)切片獲取元素時(shí),會(huì)包括起始位置狮腿,不會(huì)包含結(jié)束位置该窗。
    切片不會(huì)影響原有列表,會(huì)返回一個(gè)新列表蚤霞。
    若省略開(kāi)始位置,則默認(rèn)從頭開(kāi)始截取
    省略結(jié)束位置义钉,則默認(rèn)截取到最后
    若起始和結(jié)束都省略昧绣,等于創(chuàng)建了一個(gè)列表副本
list=[12,None,'sh',True]
print(list[1:3])
print(list[1:])
print(list[:3])
  • 語(yǔ)法2:列表[起始:結(jié)束:步長(zhǎng)]
list=[12,None,'sh',True,3,5,6]
print(list[1:6:2])
print(list[1:6:-1])
#相當(dāng)于逆序隔兩個(gè)打印
print(list[::-2])

3.元組(tuple)

元組是一個(gè)不可變序列,其操作方式基本與列表一樣捶闸,但是少了列表中的增刪改方法夜畴。但是元組創(chuàng)建時(shí)拖刃,有幾個(gè)特殊。

list0=()
# 只有一個(gè)元素時(shí)贪绘,必須加兑牡,不加就是一個(gè)int類(lèi)型變量
list = (5,)
# 當(dāng)元組不是空元組時(shí),括號(hào)可以省略
list1=5,3,5
print(type(list0))
元組的解包(解構(gòu))

解包就是將元組當(dāng)中每一個(gè)元素都賦值給一個(gè)變量
每一次解包里面税灌,最多可以有一個(gè)帶*號(hào)的變量均函。他其實(shí)就是一個(gè)list,他將解包中沒(méi)有對(duì)應(yīng)的元素放入列表中。

list=1,3,4,5,
a,b,c,d,=list
a,*b=list # b= 3菱涤,4苞也,5
a,*b,c=list #b=3,4
print(b)

4.字典(dict)

字典是一種映射的數(shù)據(jù)結(jié)構(gòu),列表存儲(chǔ)數(shù)據(jù)的性能很好粘秆,但是查詢(xún)數(shù)據(jù)的性能很差如迟。
字典中每一個(gè)元素都有唯一的名字,通過(guò)過(guò)指定的key值可以快速找到value攻走,因此殷勘,查詢(xún)?cè)貢r(shí),字典的效率是非澄袈В快的玲销。字典中有多個(gè)鍵值對(duì),每一個(gè)鍵值對(duì)稱(chēng)位item
字典的值可以是任意對(duì)象巩趁, 字典的鍵可以是任意的“不可變對(duì)象” 痒玩,一般使用str

# 創(chuàng)建字典
a=(1,3)
#方式1,因?yàn)樵M也是不可變的议慰,因此可以作為鍵
dictionnary={'name':'h',a:[1,3,'s']}
#使用dict()函數(shù)創(chuàng)建字典蠢古,對(duì)應(yīng)的鍵都是str
dictionnary1=dict(name='hha',age='15')
# 根據(jù)鍵獲取值,若鍵值不存在則報(bào)錯(cuò)
b=dictionnary1['name']
#獲取字典鍵值對(duì)個(gè)數(shù)
len(dictionnary1)
#in/not in 檢查字典中是否包含指定的鍵
print('name' in dictionnary1)
#如果字典中存在此鍵則覆蓋value值,若沒(méi)有則添加鍵值對(duì)
dictionnary1['name']='54'
常用函數(shù):
  • get(key,default): 通過(guò)key獲取value
  • setdefault(key,default): 向字典中添加鍵值對(duì)别凹,如果key存在則返回value值草讶,若不存在則添加此鍵值對(duì)
  • update(dict):將其它字典的添加到當(dāng)前字典,若有重復(fù)鍵炉菲,則添加的會(huì)覆蓋之前的堕战。
  • del dict['key']:刪除指定鍵值對(duì)
  • popitem():刪除最后一個(gè)鍵值對(duì),刪除之后返回的是包含兩個(gè)元素的元組拍霜,第一個(gè)是刪除的key嘱丢,第二個(gè)是刪除的value。 當(dāng)字典為空時(shí)祠饺,會(huì)拋出異常越驻。
  • pop(key,default) :刪除指定的key,default可以省略,如果指定了default默認(rèn)值缀旁,則key不存在時(shí)不會(huì)報(bào)錯(cuò)记劈,直接返回default
  • clear():清空字典
  • copy():對(duì)字典進(jìn)行淺拷貝,復(fù)制以后的對(duì)象時(shí)相互獨(dú)立的并巍。
a=(1,3)
dictionnary={'name':'h',a:[1,3,'s']}
dictionnary.get('name')
dictionnary.setdefault('age',18)
dictionnary.update({'sex':'man'})
del dictionnary[a]
dictionnary.popitem()
dictionnary.pop('name','None')
b=dictionnary.copy()
b.clear()
dictionnary.setdefault('ss',{'15':77})
#字典嵌套
print(dictionnary['ss']['15'])

5.集合(set)

集合和列表相似目木,其不同點(diǎn)在于

  • 集合中只能存儲(chǔ)不可變對(duì)象
  • 集合中存儲(chǔ)的對(duì)象是無(wú)序的,非插入有序懊渡,但是集合中相同類(lèi)型元素是有序的
  • 集合中元素不能重復(fù)
set={1,3,6,4,5,'f'}
set=set()#空集合
set=set([1,3,4,5]) #將列表/元組轉(zhuǎn)換為集合
#將字典轉(zhuǎn)換為集合刽射,只會(huì)包含鍵
set=set({'name':'he'})
常用函數(shù):
  • len():集合元素個(gè)數(shù)
  • add():向集合中添加元素。
  • update():將一個(gè)集合/序列/字典中的元素添加到當(dāng)前集合中距贷。
  • pop():隨機(jī)刪除并返回集合中的元素
  • remove(value):刪除集合中指定元素
  • clear():清空集合
  • copy():淺拷貝
set={1,3,6,4,5,'f'}
len(set)
set.add(7)
set.update([2,3,5,3])
set.pop()
set.remove(3)
print(set)
set.clear()

集合的運(yùn)算

在對(duì)集合做運(yùn)算時(shí)柄冲,不會(huì)影響原來(lái)的集合,會(huì)返回一個(gè)新的結(jié)果忠蝗。
如果a集合中的元素全部都在b集合中出現(xiàn)现横,那么a集合就是b集合的子集,b集合是a集合超集

  • &:交集運(yùn)算
  • | :并集運(yùn)算
  • -:差集運(yùn)算
  • ^ :異或集:獲取只在一個(gè)集合中出現(xiàn)的元素
  • <=:檢查一個(gè)集合是否是另一個(gè)集合的子集
  • <:檢查一個(gè)集合是不是另一個(gè)集合的真子集
  • > : 檢查一個(gè)集合是不是另一個(gè)的真超集
  • >=:檢查一個(gè)集合是否是另一個(gè)的超集
a={1,4,5,7}
b={1,4,5,7,3,6}
print(a&b) #{1, 4, 5, 7}
print(a|b) #{1, 3, 4, 5, 6, 7}
print(a^b) #{3, 6}
print(a<=b) #True
print(a<b) #True
print(a>b) #False
print(a>=b)  #False
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阁最,一起剝皮案震驚了整個(gè)濱河市戒祠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌速种,老刑警劉巖姜盈,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異配阵,居然都是意外死亡馏颂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)棋傍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)救拉,“玉大人,你說(shuō)我怎么就攤上這事瘫拣∫谛酰” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵麸拄,是天一觀的道長(zhǎng)派昧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)拢切,這世上最難降的妖魔是什么蒂萎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮淮椰,結(jié)果婚禮上岖是,老公的妹妹穿的比我還像新娘帮毁。我一直安慰自己,他們只是感情好豺撑,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著黔牵,像睡著了一般聪轿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猾浦,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天陆错,我揣著相機(jī)與錄音,去河邊找鬼金赦。 笑死音瓷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夹抗。 我是一名探鬼主播绳慎,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼漠烧!你這毒婦竟也來(lái)了杏愤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤已脓,失蹤者是張志新(化名)和其女友劉穎珊楼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體度液,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厕宗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堕担。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片已慢。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖照宝,靈堂內(nèi)的尸體忽然破棺而出蛇受,到底是詐尸還是另有隱情,我是刑警寧澤厕鹃,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布兢仰,位于F島的核電站,受9級(jí)特大地震影響剂碴,放射性物質(zhì)發(fā)生泄漏把将。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一忆矛、第九天 我趴在偏房一處隱蔽的房頂上張望察蹲。 院中可真熱鬧请垛,春花似錦、人聲如沸洽议。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亚兄。三九已至混稽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間审胚,已是汗流浹背匈勋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膳叨,地道東北人洽洁。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菲嘴,于是被迫代替她去往敵國(guó)和親饿自。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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