2020-06-01→Python基礎(chǔ)課第七節(jié)_元組&字典&集合

一、元組

  • 元組的基本介紹
    元組是?個(gè)不可變序列?般當(dāng)我們希望數(shù)據(jù)不改變時(shí),我們使?元組,其他情況下基本都?列表)。元組的表現(xiàn)形式:tuple;并使?()創(chuàng)建元素!并且也可以使用索引值來(lái)取值!
    eg.

    image.png

  • 元組不是空元組?少有?個(gè) “逗號(hào)(,)” 當(dāng)元組不是空元組時(shí)括號(hào)可以省略。
    eg.

    image.png

  • 元組的解包
    元組解包指將元組當(dāng)中的每?個(gè)元素都賦值給?個(gè)變量。(變量和元素?cái)?shù)量必須一一對(duì)應(yīng)或者變量加“”以促成列表)即可通過(guò)加“”的形式調(diào)整變量不足的情況!
    eg.

    image.png

    image.png

二、字典

2.1 字典的基本數(shù)據(jù)結(jié)構(gòu)

  • 字典屬于?種新的數(shù)據(jù)結(jié)構(gòu)稱(chēng)為映射(mapping)。字典的作?和列表類(lèi)似,都是?來(lái)存儲(chǔ)對(duì)象的容器。
    d={},字典的創(chuàng)建可以為空值!
    ★字典與列表對(duì)存儲(chǔ)數(shù)據(jù)的優(yōu)劣勢(shì):
    列表存儲(chǔ)數(shù)據(jù)的性能好,但是查詢(xún)數(shù)據(jù)的性能差,字典正好與之相反。
  • 在字典中每?個(gè)元素都有唯?的名字,通過(guò)這個(gè)唯?的名字可以找到指定的元素。這個(gè)唯?的名字我們稱(chēng)之為key,通過(guò)key可以快速查詢(xún)value 也可以稱(chēng)之為值。因此字典我們也稱(chēng)之為鍵值對(duì)(key-value)結(jié)構(gòu)。
    每個(gè)字典中都可以有多個(gè)鍵值對(duì),?每?個(gè)鍵值對(duì)我們稱(chēng)其為?項(xiàng)(item)。
  • 語(yǔ)法結(jié)構(gòu):
    {key:value,key:value,key:value...}即創(chuàng)建一個(gè)有數(shù)據(jù)的字典。

PS:
字典的值可以是任意對(duì)象,字典的鍵可以是任意的不可變對(duì)象(int、str、bool、tuple....)

eg.

image.png

  • 字典的鍵是不能重復(fù)的,如果出現(xiàn)重復(fù)的后?的會(huì)替換前?的!
    eg.

    image.png

  • 根據(jù)鍵來(lái)獲取值如下:
    語(yǔ)法結(jié)構(gòu):dict[key],key必須加引號(hào),否則會(huì)作為變量來(lái)進(jìn)行程序處理;當(dāng)然也可以通過(guò)將key賦值給一個(gè)變量,此時(shí)不用加引號(hào)

    eg.

    image.png

2.2 字典的使用

  • 1、dict()函數(shù)來(lái)創(chuàng)建字典。
    eg.


    image.png
image.png
  • 2、len(),用來(lái)獲取字典中鍵值對(duì)的個(gè)數(shù)。
    eg.


    image.png
  • 3、in 檢查字典中是否包含指定的。
    not in 檢查字典中是否不包含指定的
    eg.

    image.png

  • 4、d.get(key[,default]) 根據(jù)來(lái)獲取字典的指定值。
    如果key不存在,則返回“NONE”;第?個(gè)參數(shù)(即)可以指定?個(gè)默認(rèn)值,當(dāng)獲取不到值的時(shí)候會(huì)返回默認(rèn)值。
    eg.

    image.png

  • 修改字典(修改、添加K-V等)
    當(dāng)然添加也可以用:d.setdefault()函數(shù)
    eg.

    image.png

    image.png

如果key已存在字典當(dāng)中,則返回key的值,不會(huì)對(duì)字典進(jìn)行任何操作!
如果key不存在,則向字典中添加這個(gè)key,并設(shè)置value值!


image.png
  • 5、update() 函數(shù),將其他字典的key-value添加到當(dāng)前的字典當(dāng)中;如果有重復(fù)的key-V,則后面會(huì)替換前面的Key-V。
    eg.


    image.png
  • 6、del d[],刪除字典中的key-value。
    eg.


    image.png
  • 7、popitem(),刪除字典最后的?個(gè)key-value 這個(gè)?法是有返回值的。刪除之后它會(huì)將刪除的key-value作為返回值返回。
    eg.


    image.png
  • 8、d.pop(key[,default]) 根據(jù)key刪除?定中的value。第?個(gè)參數(shù)可以指定?個(gè)默認(rèn)值,當(dāng)獲取不到值的時(shí)候會(huì)返回默認(rèn)值。
    而使用del()則是沒(méi)有返回值的!
    eg.

    image.png

2.3 copy(),淺復(fù)制

  • d.copy() ?法?來(lái)對(duì)字典進(jìn)?潛復(fù)制
    PS:潛復(fù)制只會(huì)復(fù)制字典本身,如果字典中還有個(gè)字典是不會(huì)進(jìn)?復(fù)制的?。ㄋ云鋓d值也不會(huì)相同)
    這個(gè)值也可以是一個(gè)可變對(duì)象,這個(gè)可變對(duì)象也不會(huì)被復(fù)制!
    eg.


    image.png

    image.png

2.4 遍歷字典

我們主要可以通過(guò)3種?式對(duì)字典進(jìn)?遍歷。(與for...in...連用)

  • 1、d.keys() 該?法返回字典所有的key。
    eg.

    image.png

  • 2、d.values(),該?法返回?個(gè)序列,序列中保存有字典的。
    eg.

    image.png

  • 3、d.items(),該?法會(huì)返回字典中所有的項(xiàng)。它返回?個(gè)序列,序列中包含有雙值?序列,雙值分別是:字典中的key和value。


    image.png

四、集合

4.1 集合的簡(jiǎn)介

  • 1、集合和列表?常相似。集合不能為空值,集合創(chuàng)建時(shí)必須有指定元素!使用{}來(lái)創(chuàng)建集合,注意與字典的區(qū)別
    特點(diǎn):
    ★集合只能存儲(chǔ)不可變對(duì)象
    ★集合中存儲(chǔ)的對(duì)象是?序
    ★集合不能出現(xiàn)重復(fù)元素
    eg.

    image.png

  • 2、可以通過(guò)set()函數(shù)來(lái)將序列和字典轉(zhuǎn)換成集合
    eg.

    image.png

    由上圖可知,但是注意字典轉(zhuǎn)換成集合時(shí),只是轉(zhuǎn)換的“key”

PS:要想通過(guò)索引獲得集合中的指定元素,必須先將其轉(zhuǎn)換成列表等有序數(shù)據(jù)才能查詢(xún)數(shù)據(jù)!
eg.

image.png

4.2 集合的使用

  • 1、使用in和not in來(lái)檢查集合中的元素;
  • 2、len()函數(shù),來(lái)獲取集合中元素的數(shù)量。
  • 3、s.add()函數(shù),向集合中添加元素。
  • 4、s.update()函數(shù),將?個(gè)集合中的元素添加到另?個(gè)集合當(dāng)中。
  • 5、s.pop()函數(shù),隨機(jī)刪除集合中的?個(gè)元素?般是刪除最后?個(gè)元素。并有一個(gè)返回值。
  • 6、s.remove()函數(shù), 刪除集合中指定的元素。
  • 7、s.clear() 函數(shù),用來(lái)清空集合。
    eg.


    001.jpg
002.jpg
003.jpg
image.png
image.png
image.png

4.3 集合的運(yùn)算

  • & 交集運(yùn)算
  • | 并集運(yùn)算
  • - 差集運(yùn)算
  • ^ 亦或集
  • <= 檢查?個(gè)集合是否是另?個(gè)集合的?集
  • < 檢查?個(gè)集合是否是另?個(gè)集合的真?集
  • >=檢查?個(gè)集合是否是另?個(gè)集合的超集
  • >檢查?個(gè)集合是否是另?個(gè)集合的真超集

eg.


image.png

五、可變對(duì)象

  • 每個(gè)對(duì)象中都保存了三個(gè)數(shù)據(jù):id(標(biāo)識(shí))、type(類(lèi)型)、value(值)。
  • 列表是一個(gè)可變對(duì)象!
    eg.
    image.png

通過(guò)上圖可知,修改對(duì)象時(shí),不會(huì)改變對(duì)象的id;但是重新賦值操作時(shí),會(huì)改變變量即改變id!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容