1 列表
python內(nèi)置的一種數(shù)據(jù)類型是列表:list。LIST是一種 有序的集合,可以隨時添加和刪除其中的元素,列表里面可以是數(shù)字或字符,或混合等。比如,列出班里所有同學(xué)的名字,可以用一個LIST表示
In [87]: a=["zhangs","lis","wangw","dada"] #定義一個列表
In [88]: len(a) #獲取列表長度,元素的個數(shù)
Out[88]: 4
In [89]: a[0] #取第一個元素
Out[89]: 'zhangs'
In [92]: a[-1] #取倒數(shù)第一個元素
Out[92]: 'dada'
In [90]: a[4] #超出長度時報錯 IndexError: list index out of range
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-90-ed40d1f49c42> in <module>
----> 1 a[4]
IndexError: list index out of range
1. 列表的相關(guān)操作
添加元素(增append,extend,insert)
Ø append在列表最后追加
In [97]: a
Out[97]: ['zhangs', 'lis', 'wangw', 'dada']
In [98]: a.append('lufei')
In [99]: a
Out[99]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei']
Ø extend兩個列表的合并
In [100]: b
Out[100]: ['a', 'b', 1, 2, 3]
In [101]: a.extend(b)
In [102]: a
Out[102]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
Ø insert 在任意位置插入
In [102]: a
Out[102]: ['zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
In [103]: a.insert(0,"wuxi")
In [104]: a
Out[104]: ['wuxi', 'zhangs', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
In [105]: a.insert(2,"haor")
In [106]: a
Out[106]: ['wuxi', 'zhangs', 'haor', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
修改元素
修改元素的時候,要通過下標(biāo)來確定要修改的是哪個元素
In [107]: a[2]='haha'
In [108]: a
Out[108]: ['wuxi', 'zhangs', 'haha', 'lis', 'wangw', 'dada', 'lufei', 'a', 'b', 1, 2, 3]
查找元素(查in,not in,index,count)
in,not in:in查找某個元素是否在列表里面,如果存在那么結(jié)果為True,否則為false
not in 與in相反,如果不存在那第返回true,否則false
In [120]: "wangw" in a
Out[120]: True
index返回某個元素的下標(biāo)位,count統(tǒng)計(jì)元素在列表出現(xiàn)幾次
In [117]: a.append("zhangs")
In [119]: a.count("zhangs")
Out[119]: 2
In [128]: a=['a','b','c','a','b']
In [130]: a.index('a',1,3) #查找字符出現(xiàn)的下標(biāo),從下標(biāo)1開始到下標(biāo)3,查找不到報錯
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-130-c884d924187e> in <module>
----> 1 a.index('a',1,3)
ValueError: 'a' is not in list
In [131]: a.index('a',1,4)
Out[131]: 3
In [132]: a.count("b")
Out[132]: 2
In [133]: a.count("d")
Out[133]: 0
刪除元素(del不屬于列表的函數(shù),pop,remove)
Ø del 根據(jù)下標(biāo)進(jìn)行刪除,也可以刪除所有變量
Ø pop默認(rèn)刪除最后一個元素
Ø remove根據(jù)元素的值進(jìn)行刪除第一個
[例del]
In [135]: a
Out[135]: ['a', 'b', 'c', 'a', 'b']
In [136]: b
Out[136]: ['a', 'b', 1, 2, 3]
In [138]: del b #直接刪除列表
In [139]: b
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-139-89e6c98d9288> in <module>
----> 1 b
NameError: name 'b' is not defined
In [140]: del a[2] #刪除列表某個元素
In [141]: a
Out[141]: ['a', 'b', 'a', 'b']
[例pop]
In [143]: a.pop()
Out[143]: 'b'
In [144]: a
Out[144]: ['a', 'b', 'a']
[例remove]
In [148]: a=['a','b','c','d','e','f','g','g','f','e']
In [149]: a.remove('e')
In [150]: a
Out[150]: ['a', 'b', 'c', 'd', 'f', 'g', 'g', 'f', 'e']
排序sort,reverse
sort方法是將list按特定順序重新排列,默認(rèn)由小到大,參數(shù)reverse=true可改為倒序。reverse方法是將list逆置
[例reverse]
In [152]: a
Out[152]: [2, 54, 7, 1, 4, 3, 5]
In [153]: a.reverse()
In [154]: a
Out[154]: [5, 3, 4, 1, 7, 54, 2]
[例sort]
In [155]: a.sort()
In [156]: a
Out[156]: [1, 2, 3, 4, 5, 7, 54]
In [163]: a.sort(reverse=True)
In [164]: a
Out[164]: [54, 7, 5, 4, 3, 2, 1]