- Python 列表 list
基礎數據結構,每個元素都分配一個數字–位置或索引 和 鍵值;
列表的大數據項不需要具有相同的類型;
>>> l1 = [1,'name','python',88] #創建列表
>>> type(l1) #查看是否爲列表類型
<class 'list'>
>>> print(l1[2]) #索引列表元素,從0開始,顯示第三個元素也就索引2
python
>>> print(l1[-1]) #索引最後一個元素
>>> print(l1[1:3]) #元素切片,去序列1到3的值,但不包括3
['name', 'python']
>>> print(l1[-3:-1]) #取最後三個元素,但不包括最後一個
['name', 'python']
>>> print(l1[-3:]) #去最後三個元素
['name', 'python', 88]
>>> print(l1[:]) #去索引值,實際省略了前面的0
[1, 'name', 'python', 88]
>>> l2 = [l1[2],"very good"] #索引元素創建新列表
>>> print(l2)
['python', 'very good']
>>> l2+[1,2,3,4,5] #鏈接列表
['python', 'very good', 1, 2, 3, 4, 5]
列表是可變的,它允許修改元素:
>>> l3 = [1,2,3]
>>> l3[1]=255 #修改第二個元素爲255
>>> print(l3)
[1, 255, 3]
也可以切片賦值清空列表:
>>> l4=['a','b','c','d','e']
>>> print(l4)
['a', 'b', 'c', 'd', 'e']
>>> l4[1:4]=['B','C','D'] #修改索引1-4但不包括4的值
>>> print(l4)
['a', 'B', 'C', 'D', 'e']
>>> l4[1:4]=[] #清空1-4索引的值,不包括4
>>>del l4[1:4] #也可以使用del刪除列表中的元素
>>> print(l4)
['a', 'e']
>>> l4[0:]=[] #清空列表,但列表對象還在,只是爲空
>>>del l4 #刪除列表,會把整個列表對象刪除
>>> print(l4)
[]
列表允許嵌套列表或元組,字典:
>>> l5 = ['a','b','c']
>>> l6 = [1,2,3]
>>> l7 = [l5,l6] #使用列表生成嵌套列表
>>> l7
[['a', 'b', 'c'], [1, 2, 3]]
>>> l7[0] #就是列表了
['a', 'b', 'c']
>>> l7[1]
[1, 2, 3]
>>> l7[0][1] #嵌套取值,先去列表本身的第1個索引,然後第1個索引元素是列表,可以再索引列表中第2個元素。
'b'
>>> l7[1][1]
2.列表操作符
len()獲取個數,(+)組合操作,(*)重複操作,(in)判斷操作
>>> l7 =[1,2,3,4,5,6]
>>> len(l7) #列表元素個數
>>> l8 =[1,2,3]+[4,5,6] #組合列表
>>> l8
[1, 2, 3, 4, 5, 6]
>>> l9=l7*3 #重複列表元素
>>> l9
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
>>> 3 in l9 #元素是否在列表中
True
>>> for i in l7:print(i) #迭代,循環列表元素
...
2
4
6
3.列表函數
len,max,min,list,
cmp(python3中以operator模塊代替) cmp判斷字符在ASCII碼中位值作比較,如a<b返回-1,a>b返回1,a=b返回0;
# python 2.7
>>> cmp('a','b') # cmp判斷字符在ASCII碼中位置做比較,如a<b返回-1,a>b返回1,a=b返回0
-1
>>> ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
>>> cmp('a','a')
0
>>> cmp('b','a')
4.列表方法
>>> l1 = [1,2,3,4]
>>> l1.append('one') # 增加元素
>>> l1
[1, 2, 3, 4, 'one']
>>> l1.append([2,2,2,]) # 增加列表對象
>>> l1
[1, 2, 3, 4, 'one', [2, 2, 2]]
>>> l1.count(2) # 查找元素在列表中出現的次數
1
>>> l1.count('22')
0
>>> l1.append(2)
>>> l1.count(2)
2
>>> l1.extend([4,5,6]) # 兩個列表擴展
>>> l1
[1, 2, 3, 4, 'one', [2, 2, 2], 2, 4, 5, 6]
>>> l1.index('one') # 查詢元素在列表中的索引並返回
4
>>> l1.insert(1,('song','ong')) # 在列表索引爲1前插入元素
>>> l1
[1, ('song', 'ong'), 2, 3, 4, 'one', [2, 2, 2], 2, 4, 5, 6]
>>> l1.pop() # 移除列表中的元素 無參數則從最後一個移除 並返回該元素的value
6
>>> l1
[1, ('song', 'ong'), 2, 3, 4, 'one', [2, 2, 2], 2, 4, 5]
>>> l1.pop(1) # 移除列表索引爲1的元素 返回
('song', 'ong')
>>> l1
[1, 2, 3, 4, 'one', [2, 2, 2], 2, 4, 5]
>>> l1.remove('one') # 移除value值爲one的元素 若不存在則拋出
>>> l1
[1, 2, 3, 4, [2, 2, 2], 2, 4, 5]
>>> l1.remove(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> l1.remove(1)
>>> l1
[2, 3, 4, [2, 2, 2], 2, 4, 5]
>>> l1.sort() # 對列表進行排序 排序對多種類型元素存在的列表會拋出異常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'list' and 'int'
>>> l1.remove(3) # 這裏是刪除 值 爲3的元素 刪除指定索引的元素用pop
>>> l1
[2, 4, [2, 2, 2], 2, 4, 5]
>>> l1.remove(2)
>>> l1
[4, [2, 2, 2], 2, 4, 5]
>>> l1.pop(1) # 移除指定索引的值
[2, 2, 2]
>>> l1
[4, 2, 4, 5]
>>> l1.sort()
>>> l1
[2, 4, 4, 5]
>>> l1.reverse() # 對列表進行反向排序
>>> l1
[5, 4, 4, 2]
轉自:http://www.cnblogs.com/zhangxinqi/p/7592213.html