Python基礎(chǔ)之2 容器:List Tuple Dictionary Set

Python有4個(gè)內(nèi)建的數(shù)據(jù)結(jié)構(gòu):List列表,Tuple元組,Dictionary字典,Set集合,統(tǒng)稱為容器container.

(1)列表/元組

都是序列結(jié)構(gòu)

列表 a=[1,2,3]

元組 b=(4,5,6)

列表可被修改,元組不可以

完整復(fù)制列表 : b= a[:]

b=a 無效,b僅是a的別名(或引用)

列表解析:能夠簡化對(duì)列表內(nèi)元素逐一進(jìn)行操作的代碼

a=[1,2,3]

b=[i+2 for i in a]

(2)字典

d= ['today':20, 'tomorrow':30]

或使用dict()函數(shù)轉(zhuǎn)換,或通過dict.fromkeys創(chuàng)建

dict([['today', 20], ['tomorrow', 30]])

dict.fromkeys(['today', 'tomorrow'], 20)

(3)集合

集合與列表的區(qū)別:1.元素是不重復(fù)的,而且是無序的;2.不支持索引

一般用{}或set()函數(shù)創(chuàng)建一個(gè)集合

s=set([1, 2, 3])

特別的運(yùn)算:

a= t | s #并集

b = t & s #交集

c = t - s #求差集(項(xiàng)在t中,但不在s中)

d = t ^ s# 對(duì)稱差集(項(xiàng)在t或s中,但不會(huì)同時(shí)出現(xiàn)在二者中)

(4)函數(shù)式編程

函數(shù)式編程又稱泛函編程。

在Python中,函數(shù)式編程主要由幾個(gè)函數(shù)的使用構(gòu)成:lambda(),map(),reduce(),filter().

map()函數(shù):

b=[i + 2 for i in a] #列表解析的方式本質(zhì)上還是for命令,而Python for命令效率不高

用map函數(shù)寫:

b = map(lambda x: x+2, a) #3.X,map函數(shù)僅僅創(chuàng)建一個(gè)待運(yùn)行的命令容器,只有其他函數(shù)調(diào)用它的時(shí)候才返回結(jié)果

b = list(b)

map()函數(shù)效率高,循環(huán)命令速度相當(dāng)于C語言

reduce()函數(shù):

用于遞歸計(jì)算(3.X中該函數(shù)被移出了全局命名空間,

使用該函數(shù)需要通過from fuctools import reduce 引入reduce )

reduce(lambda x,y: x*y, range(1,n+1))

用for循環(huán)寫:

s = 1

for i in range(1, n+1):

? s = s * i

filter()函數(shù):

過濾器,用來篩選列表中符合條件的元素

b = filter(lambda x: x > 5 and x < 8, range(10))

b = list(b)

列表解析:

b= [i for i in range(10) if i > 5 and i < 8]

總結(jié)自《Python數(shù)據(jù)分析與數(shù)據(jù)挖掘》第2章

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 包(lib)、模塊(module) 在Python中,存在包和模塊兩個(gè)常見概念。 模塊:編寫Python代碼的py...
    清清子衿木子水心閱讀 3,907評(píng)論 0 27
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,799評(píng)論 1 118
  • 一.Apache部分 安裝 sudo apt-get install apache2 啟動(dòng)apache服務(wù) 重啟a...
    敢想敢做_閱讀 182評(píng)論 0 0
  • 大家都成了大人,各自擁有不同的生活圈子,這在某種程度上也是無可奈何。我們已經(jīng)不再是天真的高中生了??删退闶沁@樣,親...
    雪羽飛鴻閱讀 512評(píng)論 0 0
  • 那冬天和往年一樣 寒冷 你追著時(shí)間的腳步 吃著 同樣的早餐 那個(gè)雪花飛舞的早晨 莫名的 溫暖 夢(mèng)中人與眼前人 相遇...
    夢(mèng)寐以求的故鄉(xiāng)閱讀 289評(píng)論 0 3

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