python基礎(chǔ)知識(shí)(二)---組合數(shù)據(jù)類型

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

1.序列: 分為 列表---list 和 元組---tuple

相同點(diǎn):都可以包含任何類型的 多個(gè)數(shù)據(jù)帜矾,并且元素之間有順序關(guān)系嫉嘀,訪問元素時(shí) 可以通過下標(biāo)數(shù)值 指定某一個(gè)元素

區(qū)別: 元組是固定數(shù)據(jù)(內(nèi)部元素一旦確定后 不能改變)淀弹, 列表的元素可變

聲明元組: 使用小括號(hào) 表示初始化元素
t=(1,2.5,True,"abc")
聲明列表: 使用中括號(hào) 表示初始化元素
l1=[1,2.5,True,"abc"]
l2=[]   # 可聲明空列表债鸡, 之后再增加元素
統(tǒng)一使用方括號(hào) 加下標(biāo)訪問某一個(gè)元素
print(t[0])     # t[0]    表示列表第一個(gè)元素
print(l1[-1])   # l1[-1]  表示訪問倒數(shù) 第一個(gè)元素

可以訪問一個(gè)區(qū)間內(nèi)的所有元素  [n1:n2] 從n1下標(biāo)到n2下標(biāo)之間的所有元素(不包含n2號(hào)元素); [n1:] n1號(hào)下標(biāo)之后的所有元素
字符串 可以當(dāng)做元組 看待捌木,  每一個(gè)字符  就是一個(gè)元素
str1="abcdefghijk"
print(str1[-3:])   # 從倒數(shù)第3到  到最后的元素
print(str1[3:6])   # 獲取3號(hào)到5號(hào)元素
print(str1[3:8:2])  # 獲取3號(hào)到7號(hào)元素中 每間隔一個(gè)元素獲取
修改元素 ,只能對(duì)列表
t[0]=10   元組不支持改變?cè)?
驗(yàn)證 list的常用方法
1.追加元素
    l2.append(10)
    l2.append(20.5)
    print(l2)

2.插入元素
    l2.insert(1, True)
    print(l2)

3.移除一個(gè)數(shù)值的 元素
    l2.remove(20.5)
    print(l2)

4.指定元素位置  “彈出”pop 一個(gè)元素
    v=l2.pop(0)
    print(v)
    print(l2)

5.列表內(nèi)部元素排序焕窝, 元素必須都是 數(shù)值類型 才能排序
    l3=[5,9,4,8,3,7,2,6,1]
    l3.sort()   # 默認(rèn) 按升序 排序
    print(l3)
    l3.sort(reverse=True)   # reverse=True 表示 倒序

    print(l3.sort(reverse=True))

6.如果對(duì)元組排序
    t2=(5,9,4,8,3,7,2,6,1)
    print( sorted(t2) )
    print(t2)

2.無(wú)序 組合數(shù)據(jù)類型: 集合--set 字典--dict

相同點(diǎn):set 和 dict內(nèi)部 都可以保存 任意類型的多個(gè)數(shù)據(jù)蹬挺,這些數(shù)據(jù)之間沒有順序關(guān)系,所以在獲取 內(nèi)部元素是只能隨機(jī)獲取一個(gè);set 和 dict 的元素都是唯一的它掂, 字典中只是key必須唯一

區(qū)別:set內(nèi)部的每個(gè)元素是單個(gè)數(shù)據(jù)汗侵,dict 內(nèi)部的每一個(gè)元素 是一對(duì)數(shù)據(jù)(稱為 鍵值對(duì))

聲明 set
s1={1,2,3,3,0,True,"abc",False}   # 如果元素有重復(fù)會(huì)自動(dòng)去除重復(fù),1 和 True 是一樣的數(shù)據(jù)
print(s1)   #因?yàn)?元素是無(wú)序的群发, 所以打印時(shí)  顯示沒有固定順序,  代表獲取元素 是隨機(jī)的
通過列表創(chuàng)建集合
l1=[1,2,3,3]
s2=set(l1)  # 把列表轉(zhuǎn)成 集合類型发乔, 過程中 會(huì)自動(dòng) 去除  重復(fù)
print(s2)
聲明字典
d1={1:"a",2:"b",3:"c", "d":4}
d2={"a":"hello", "T":True, "F":False, "F":123 }  # 字典的key必須唯一熟妓, 如果重復(fù)了, 取最后出現(xiàn)的 鍵值對(duì)
print(d1)
print(d2)
字典的訪問
1.通過key來訪問對(duì)應(yīng)的 value
    print(d1[1],d1["d"])    
2.隨機(jī)獲取字典中的 一個(gè)元素(鍵值對(duì))
    v2=d1.pop(3)
    print(v2)
    print(d1)
    print(d1.popitem())   # 字典的popitem() 方法隨機(jī)彈出一對(duì)鍵值對(duì)栏尚,彈出后會(huì)從字典中移除
3.字典增加或更新一個(gè)元素
    d1[4]="hello"   #如果沒有這個(gè)key 就是增加一對(duì) 鍵值對(duì)
    print(d1)       
    d1[4]="world"   #更新鍵值對(duì)
    print(d1)
集合的訪問
1.只能隨機(jī)彈出一個(gè)元素
    print(s1.pop())  # 隨機(jī)彈出一個(gè)元素后  該元素被移除
    print(s1)
    # s1.remove(3)   # 移除的數(shù)據(jù) 必須存在
    print(s1)
2.集合增加一個(gè)元素
    s1.add("hello")
    print(s1)

3.集合運(yùn)算
    s3={1,2,3,4,5,6,7,8}
    s4={5,6,7,8,9,10,11,12}
    print( s3 & s4)  # 交集運(yùn)算
    print( s3 | s4)  # 并集運(yùn)算
    print( s3 - s4)   # 差集運(yùn)算起愈,  左邊集合中 去掉 和右邊集合中 相同的元素
    print( s4 - s3)
    
    print( s3 ^ s4)  #補(bǔ)集運(yùn)算, 取出兩個(gè)集合中 唯一的部分译仗, 去掉共同的部分

組合數(shù)據(jù)類型 課堂練習(xí)

1.假設(shè)有ip列表ipList = ["172.31.21.18","172.31.21.19","172.31.21.20",
"172.31.21.18","172.31.21.19","172.31.21.18","172.31.21.23",
"172.31.21.18","172.31.21.20","172.31.21.20","172.31.21.23",
"172.31.21.21"] 計(jì)算出 每個(gè)ip地址出現(xiàn)的次數(shù)

    ipList = ["172.31.21.20","172.31.21.19","172.31.21.20","172.31.21.18",
    "172.31.21.19","172.31.21.18","172.31.21.23","172.31.21.18",
    "172.31.21.20","172.31.21.20","172.31.21.23","172.31.21.20"] 
    ipset=set(ipList)
    c=0
    ip=''
    for i in ipset:
        print(i,"出現(xiàn)了%d次" %ipList.count(i))
            if ipList.count(i)>c:
                c=ipList.count(i)
                ip=i
    print("出現(xiàn)次數(shù)最多的ip地址是%s,對(duì)應(yīng)的次數(shù)數(shù)%d" %(ip,c) )

2.給你一個(gè)list, 例如 L = [5, 1, 2, 3, 4, 8,-5] 輸出L的中位數(shù)
#中位數(shù)是指 對(duì)已排序的數(shù)集取其中間數(shù)抬虽,數(shù)集為偶數(shù) 取中間兩數(shù)的平均
    l1 = [5, 1, 2, 3, 4, 8, -5,11]
    l1.sort()  # 對(duì)原始列表元素 排序
    print(l1)
    if len(l1) % 2 == 0 :  # 如果有偶數(shù)個(gè) 元素
        print("列表元素的中位數(shù)是", (l1[len(l1) // 2] + l1[len(l1) // 2 - 1]) / 2)
    else:
        print("列表元素的中位數(shù)是", l1[len(l1) // 2])   # len(l1) // 2  列表元素個(gè)數(shù)  “整除”2。  序列下標(biāo)寫小數(shù)會(huì)報(bào)錯(cuò)

3.給你一個(gè)字典a = {1:1, 2:2, 3:3}, 輸出字典a的keys ,以',' 連接纵菌,如 '1,2,3'阐污。 
#字符串連接的方法字符串型數(shù)據(jù).join字符串列表
    a = {1:1, 2:2, 3:3}
    l1=[]
    for i in a.keys():
        l1.append(str(i))
    print(",".join(l1))   #  字符串類型的 join方法拼接的  多個(gè)元素 必須都是  字符串型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咱圆,隨后出現(xiàn)的幾起案子笛辟,更是在濱河造成了極大的恐慌,老刑警劉巖序苏,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件手幢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡忱详,警方通過查閱死者的電腦和手機(jī)围来,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人监透,你說我怎么就攤上這事桶错。” “怎么了才漆?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵牛曹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我醇滥,道長(zhǎng)黎比,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任鸳玩,我火速辦了婚禮阅虫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘不跟。我一直安慰自己颓帝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布窝革。 她就那樣靜靜地躺著购城,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虐译。 梳的紋絲不亂的頭發(fā)上瘪板,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音漆诽,去河邊找鬼侮攀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛厢拭,可吹牛的內(nèi)容都是我干的兰英。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼供鸠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼畦贸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起楞捂,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤家制,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后泡一,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颤殴,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鼻忠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涵但。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杈绸。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖矮瘟,靈堂內(nèi)的尸體忽然破棺而出瞳脓,到底是詐尸還是另有隱情,我是刑警寧澤澈侠,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布劫侧,位于F島的核電站,受9級(jí)特大地震影響哨啃,放射性物質(zhì)發(fā)生泄漏烧栋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一拳球、第九天 我趴在偏房一處隱蔽的房頂上張望审姓。 院中可真熱鬧,春花似錦祝峻、人聲如沸魔吐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酬姆。三九已至,卻和暖如春奥溺,著一層夾襖步出監(jiān)牢的瞬間轴踱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工谚赎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诱篷。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓壶唤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親棕所。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闸盔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355