今天是『曉明兄』 “30天python處理Excel計劃”第04天。有些時候我們處理的數(shù)據(jù)很簡單,很容易處理冰蘑。但是偶爾也會遇到比較復(fù)雜的數(shù)據(jù)。
所以為了降低復(fù)雜性村缸,我們通常會數(shù)據(jù)區(qū)分祠肥、歸類成為一個個的列表,例如:課程表梯皿、行程表仇箱、電話表等等。python同樣具有這樣的功能东羹,下面我們將學(xué)習(xí)到python中列表的定義及操作剂桥。
今日目標(biāo)
- 了解列表:list
- 列表的基本使用
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 變量
訪問列表中的元素
- 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']
好鳍烁,現(xiàn)在需要獲取'ming'
需要怎么做?
要拿到ming
先要找到nameA
所在nameB
中的索引“2”桨踪,然后在nameA
中ming
的索引“1”老翘,即:nameB[2][1]
小結(jié)
- 列表創(chuàng)建:使用"[]"中括號包裹,用“,”英文逗號分隔。
- 列表是一種有序的數(shù)據(jù)集合铺峭。
- 列表的基本操作包括查詢墓怀、修改、刪除卫键。
每日一題
上期答案
- 答案: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'?