計劃:第04天 初識python之列表

今天是『曉明兄』 “30天python處理Excel計劃”第04天。有些時候我們處理的數(shù)據(jù)很簡單,很容易處理冰蘑。但是偶爾也會遇到比較復(fù)雜的數(shù)據(jù)。

所以為了降低復(fù)雜性村缸,我們通常會數(shù)據(jù)區(qū)分祠肥、歸類成為一個個的列表,例如:課程表梯皿、行程表仇箱、電話表等等。python同樣具有這樣的功能东羹,下面我們將學(xué)習(xí)到python中列表的定義及操作剂桥。

今日目標(biāo)

  1. 了解列表:list
  2. 列表的基本使用

list 列表

list列表 是python內(nèi)置的一種有序的集合,可以添加属提、刪除其中的元素权逗。

  • list列表 定義: 是用“[]”定義 用“,”隔開

列表初始化

我們先從簡單的列表入手美尸,下面有一組同學(xué)姓名:

zhangSan
liSi
wangWu

以python能理解的方式寫:

names = ['zhangSan','liSi','wangWu']
list定義解析:    
1. 在列表的兩邊需要用`[ ]`中括號括起來
2. 在字符串?dāng)?shù)據(jù)兩邊加引號(單引號或雙引號),例:在名字兩邊加引號'zhangSan'或"zhangSan"  
3. 用逗號將多個數(shù)據(jù)分開'zhangSan','liSi'
4. 使用復(fù)制操作 = 斟薇,將名字列表復(fù)制給 names 變量
01.gif

訪問列表中的元素

  • list列表中的每個元素都分配位置或索引师坎,第一個索引是0,第二個索引是1堪滨,依此類推胯陋。

用索引來訪問list中每一個位置的元素,記得索引是從0開始的:

>>> names = ['zhangSan','liSi','wangWu']
>>> names[0]
'zhangSan'

>>> age = [18,20,25]
>>> age[0]
18
>>> age[1]
20
  • 要注意索引不能超過范圍椿猎,試一試:
>>> names = ['zhangSan','liSi','wangWu']
>>> names[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

錯誤:==list index out of range==惶岭,所以,要確保索引不要越界犯眠,記得第一個索引是從0開始,最后一個元素的索引是:“列表長度 - 1” 即 names 的列表長度是 3症革,最后一個索引是 2筐咧。

列表截取

>>> names = ['zhangSan','liSi','wangWu']
>>> names[2]
'wangWu'
>>> names[-2]
'liSi'
>>> names[1:]
['liSi', 'wangWu']

解析:

表達(dá)式 結(jié)果 解析
names[2] 'wangWu' 讀取列表中第三個元素
names[-2] 'liSi' 讀取列表中倒數(shù)第二個元素
names[1:] ['liSi', 'wangWu'] 從第二個元素開始截取列表

添加列表元素

  • 使用 append() 方法,在列表末尾追加數(shù)據(jù):
>>> names = ['zhangSan','liSi','wangWu']
>>> names.append('xiaoMing')
>>> names
['zhangSan', 'liSi', 'wangWu', 'xiaoMing']
  • 使用 insert(索引,值)方法噪矛,在指定位置插入量蕊,比如索引號為1的位置:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.insert(1,'xiaoMing')
>>> names
['zhangSan', 'xiaoMing', 'liSi', 'wangWu']

刪除列表元素

  • 使用pop()方法,刪除列表末尾的元素:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.pop()
'wangWu'
>>> names
['zhangSan', 'liSi']
  • 使用pop(索引)方法艇挨,刪除指定位置的元素:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.pop(1)
'liSi'
>>> names
['zhangSan', 'wangWu']

修改列表元素

  • 使用=直接賦值對應(yīng)的索引位置:
>>> names = ['zhangSan','liSi','wangWu']
>>> names[1] = 'xiao'
>>> names
['zhangSan','xiao','wangWu']

列表函數(shù)

表達(dá)式 結(jié)果 描述
len([1,2,3]) 3 len() 獲取列表長度
max([1,2,3]) 3 max() 獲取列表最大值
min([1,2,3]) 1 min() 獲取列表最小值
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] + 組合

列表混合類型

python列表中可以混合數(shù)據(jù)類型残炮,即在同一個列表中混合存放字符串、數(shù)字缩滨、列表势就、等等(任意類型)。

試一試

向names列表names = ['zhangSan','liSi','wangWu']中插入相應(yīng)的年齡脉漏,改變列表苞冯,使之成為下面的形式
['zhangSan',18,'liSi',20,'wangWu',26]

解答:

>>> names = ['zhangSan','liSi','wangWu']
>>> names.insert(1,18)
>>> names
['zhangSan', 18, 'liSi', 'wangWu']

>>> names.insert(3,20)
>>> names
['zhangSan', 18, 'liSi', 20, 'wangWu']

>>> names.append(26)
>>> names
['zhangSan', 18, 'liSi', 20, 'wangWu', 26]

恭喜你,到這里列表的基本操作已經(jīng)學(xué)會了侧巨。不要松懈下面將講解實際中經(jīng)常出現(xiàn)的一種形式舅锄,多維列表。

多維列表

上面講列表中可以混合數(shù)據(jù)類型司忱,例如:列表中包含另一個列表(二維數(shù)組)皇忿。

>>> names = ['zhangSan','liSi',['xiao','ming'],'wangWu']
>>> len(names)
4

解析:
注意列表names的長度只有4個,其中包含一個列表['xiao','ming']坦仍。下面進(jìn)一步拆解:

>>> nameA = ['xiao','ming']
>>> nameB = ['zhangSan','liSi',nameA,'wangWu']
>>> nameB
['zhangSan', 'liSi', ['xiao', 'ming'], 'wangWu']
列表.png

好鳍烁,現(xiàn)在需要獲取'ming'需要怎么做?

要拿到ming先要找到nameA所在nameB中的索引“2”桨踪,然后在nameAming的索引“1”老翘,即:nameB[2][1]

小結(jié)

  1. 列表創(chuàng)建:使用"[]"中括號包裹,用“,”英文逗號分隔。
  2. 列表是一種有序的數(shù)據(jù)集合铺峭。
  3. 列表的基本操作包括查詢墓怀、修改、刪除卫键。

每日一題

上期答案

  • 答案:xiao
  • 原題:
    最后一行打印出來的是xiao還是ok呢傀履?
a = 'xiao'
b = a
a = 'ok'
print(b)

解析:
1. 執(zhí)行a = 'xiao',這個時候變量a指向了xiao
2. 執(zhí)行b = a莉炉,這個時候變量b也指向了xiao,==注意b指向的是 字符串'xiao' 并不是 變量'a'==
3. 執(zhí)行a = 'ok'钓账,這個時候變量a指向了ok

本期問題

如果獲取列表中的內(nèi)容?

names = [
    ['A', 'B', 'C'],
    ['D', 'E', 'F', 'G'],
    ['H', 'I', 'J']
]

問題1: 請獲取列表中'A'絮宁?
問題2: 請獲取列表中'F'梆暮?
問題3: 請獲取列表中'H'?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绍昂,一起剝皮案震驚了整個濱河市啦粹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窘游,老刑警劉巖唠椭,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忍饰,居然都是意外死亡贪嫂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門艾蓝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來力崇,“玉大人,你說我怎么就攤上這事饶深〔筒埽” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵敌厘,是天一觀的道長台猴。 經(jīng)常有香客問我,道長俱两,這世上最難降的妖魔是什么饱狂? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮宪彩,結(jié)果婚禮上休讳,老公的妹妹穿的比我還像新娘。我一直安慰自己尿孔,他們只是感情好俊柔,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布筹麸。 她就那樣靜靜地躺著,像睡著了一般雏婶。 火紅的嫁衣襯著肌膚如雪物赶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天留晚,我揣著相機與錄音酵紫,去河邊找鬼。 笑死错维,一個胖子當(dāng)著我的面吹牛奖地,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赋焕,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼参歹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宏邮?” 一聲冷哼從身側(cè)響起泽示,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜜氨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捎泻,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡飒炎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笆豁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郎汪。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖闯狱,靈堂內(nèi)的尸體忽然破棺而出煞赢,到底是詐尸還是另有隱情,我是刑警寧澤哄孤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布照筑,位于F島的核電站,受9級特大地震影響瘦陈,放射性物質(zhì)發(fā)生泄漏凝危。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一晨逝、第九天 我趴在偏房一處隱蔽的房頂上張望蛾默。 院中可真熱鬧,春花似錦捉貌、人聲如沸支鸡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牧挣。三九已至急前,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浸踩,已是汗流浹背叔汁。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留检碗,地道東北人据块。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像折剃,于是被迫代替她去往敵國和親另假。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348