Python列表是啥?
列表是由一系列按特定順序排列的元素組成。你可以將任意類型的元素插入到列表,無論是相同類型還是不同類型,元素之間沒有任何關係。需要注意的是:列表的索引和C語言裏邊的數組一樣都是從0開始的。
列表的遍歷:
僞代碼:
for 變量名 in 列表名:
執行的操作1
執行的操作2
例如:
#coding:utf-8
lists_1=[] #聲明一個空列表,列表名字爲"lists_1"
lists_2=[1,'a',1.5,'test_1',"test_2"] #聲明一個列表lists_2,並且初始化爲以上幾個元素
for i in lists_2: #for循環遍歷輸出列表的各個元素和數據類型
print i,;
print type(i);
關於python循環語句for和while請查看博客:
關於print語句爲何後邊多一個逗號,請查看博客:
運行結果:
1 <type 'int'>
a <type 'str'>
1.5 <type 'float'>
test_1 <type 'str'>
test_2 <type 'str'>
很顯然,上面5各元素中包含了int、float、str三種類型,足以說明元素直接沒有任何關係,可以將任意類型的元素插入列表。
如何訪問列表中的元素:
對於以上列表lists_2,其訪問方式爲lists_2[0],lists_2[1],lists_2[2]......
例如:
#coding:utf-8
lists_2=[1,'a',1.5,'test_1',"test_2"] #聲明一個列表lists_2,並且初始化爲以上幾個元素
n=0;
while n<5:
print lists_2[n],;
print type(lists_2[n]);
n+=1;
運行結果:
1 <type 'int'>
a <type 'str'>
1.5 <type 'float'>
test_1 <type 'str'>
test_2 <type 'str'>
不難看出,結果與上邊的一樣。
Python常用方法(常用函數)
獲取列表長度:
len(列表名稱)
例如:
#coding:utf-8
lists_2=[1,'a',1.5,'test_1',"test_2"] #聲明一個列表lists_2,並且初始化爲以上幾個元素
lengh=len(lists_2);
print lengh;
輸出結果:5
增:
append() #在末尾添加
insert(index, 元素) #在index處添加(後邊的元素自動後移)
例如:
#coding:utf-8
lists_2=[1,'a',1.5,'test_1',"test_2"] #聲明一個列表lists_2,並且初始化爲以上幾個元素
lists_2.append(2); #在列表的末尾添加元素2
lists_2.append("appendOne"); #在列表的末尾添加元素"test_3"
lists_2.insert(0, "insertOne"); #在列表的0索引處添加元素"insertOne"
lists_2.insert(2, 0.375); #在列表的2索引處添加元素0.375
for i in lists_2:
print i;
輸出結果:
insertOne
1
0.375
a
1.5
test_1
test_2
2
appendOne
刪:
del #刪除指定元素
pop(index) #刪除index處的元素並返回被刪除的內容,pop()爲默認彈出尾部元素並返回
remove(x) #刪除列表中第一次出現的x後邊的元素自動前移
例如:
#coding:utf-8
lists_2=[1,'a',1.5,'test_1',"test_2"] #聲明一個列表lists_2,並且初始化爲以上幾個元素
print "初始列表:";
print lists_2; #輸出列表
lists_2.append(2); #在列表的末尾添加元素2
lists_2.append("appendOne"); #在列表的末尾添加元素"test_3"
lists_2.insert(0, "insertOne"); #在列表的0索引處添加元素"insertOne"
lists_2.insert(2, 0.375); #在列表的2索引處添加元素0.375
print "\n添加元素後:";
print lists_2; #輸出列表
#如果知道要刪除元素的位置,可以用del語句來刪除
del lists_2[0]; #刪除0索引處的元素
del lists_2[3]; #刪除3索引處的元素
print "\ndel語句刪除0和3索引處元素後:";
print lists_2; #輸出列表
popOne=lists_2.pop(0); #彈出0索引處元素並返回給popOne
popLast=lists_2.pop(); #彈出列表尾部元素並返回給popLast
print "\npop()語句彈出後的列表:";
print lists_2;
print "被彈出的元素爲:";
print popOne,;
print popLast;
lists_2.append(0.375); #列表尾部添加一個0.375與前面的區分開
lists_2.remove(0.375); #刪除第一次出現的0.375
print "\nremove()語句刪除第一個0.375後的列表:";
print lists_2;
輸出結果:
初始列表:
[1, 'a', 1.5, 'test_1', 'test_2']
添加元素後:
['insertOne', 1, 0.375, 'a', 1.5, 'test_1', 'test_2', 2, 'appendOne']
del語句刪除0和3索引處元素後:
[1, 0.375, 'a', 'test_1', 'test_2', 2, 'appendOne']
pop()語句彈出後的列表:
[0.375, 'a', 'test_1', 'test_2', 2]
被彈出的元素爲:
1 appendOne
remove()語句刪除第一個0.375後的列表:
['a', 'test_1', 'test_2', 2, 0.375]
查:
查即訪問,上文已經涉及。
改:
訪問後直接重新賦值即改,上文也已涉及。
排序:
sort() #使列表永久排序
sorted() #使列表臨時排序
reverse() #使列表逆序
例如:
#coding:utf-8
lists=[0,1,2,3,4,5,6,7,8,9];
print "初始列表:"
print lists;
lists.reverse(); #使列表逆序
print "\nreverse()逆序後的列表:"
print lists;
print "\n使用sorted()函數使列表臨時排序並輸出:"
print sorted(lists); #臨時排序並輸出
print "\n臨時排序已失效後的列表:"
print lists;
lists.sort();
print "\nsort()永久排序後的列表:"
print lists;
print "\n永久排序後的列表不會失效:"
print lists;
輸出結果:
初始列表:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
reverse()逆序後的列表:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
使用sorted()函數使列表臨時排序並輸出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
臨時排序已失效後的列表:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
sort()永久排序後的列表:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
永久排序後的列表不會失效:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
數值列表
創建數值列表
我們可以用range()函數來創建數值列表:
numbers=list(range(1,20,3));
print numbers;
輸出結果:
[1, 4, 7, 10, 13, 16, 19]
上邊用range函數來生成一個數值列表。
數值列表常用函數
min() #取數字列表最小值
max() #取數字列表的最大值
sum() #取數字列表的和值
例如:
numbers=list(range(1,20,3));
print "初始列表:"
print numbers;
print "\n列表最小值爲:";
print min(numbers);
print "\n列表最大值爲:";
print max(numbers);
print "\n列表和值爲:";
print sum(numbers);
輸出結果:
初始列表:
[1, 4, 7, 10, 13, 16, 19]
列表最小值爲:
1
列表最大值爲:
19
列表和值爲:
70
以上三個函數爲python用於處理數值列表的專用函數,也適用於包含百萬個數值的列表。
使用列表的一部分——列表切片
什麼叫切片?
在python中,對於一個列表來說,我們通常希望只用到列表的一部分,比如列表中的某一段,這個時候,列表中的任意一段都可以成爲列表的切片。
怎麼切?
例如:
#coding:utf-8
numbers=list(range(0,20));
print "初始列表:";
print numbers;
print "\n0~3切片:";
print numbers[0:3];
print "\n1~4切片:";
print numbers[1:4];
print "\n從頭部到5切片:";
print numbers[:5];
print "\n從6到尾部切片:";
print numbers[6:];
print "\n遍歷從15~20切片";
for i in numbers[15:20]:
print i,;
輸出結果:
初始列表:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
0~3切片:
[0, 1, 2]
1~4切片:
[1, 2, 3]
從頭部到5切片:
[0, 1, 2, 3, 4]
從6到尾部切片:
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
遍歷從15~20切片
15 16 17 18 19
從輸出結果不難看出,切片跟range函數一樣,左包右不包,numbers[1:4]實際上包含1而不包含4。
Python元組是啥?和列表的異同點是啥?
我們已經知道:列表由一系列按特定順序排列的元素組成。你可以將任意類型的元素插入到列表,無論是相同類型還是不同類型,元素之間沒有任何關係。
那麼元組呢?
元組是不變的列表。
列表元素可以修改,元組元素不能被修改;
列表使用方括號,元組使用小括號;
list1=[]
tuple1=()
元組中只包含一個元素時,需要在元素後面添加逗號;
tuple1=(1,)
元組與字符串類似,下標索引從0開始,可以進行截取,組合等;
tuple1 = (1,2,3);
tuple2 = (4,5,6);
tuple3 = tuple1 + tuple2;
print tuple3;
輸出結果:
(1, 2, 3, 4, 5, 6)
元組的訪問形式與列表一樣,都是以索引的形式訪問的,這裏不再贅述。
元組的元素不能被刪除,但是整個元組可以用del語句刪除:
tuple1=(1,2,3);
del tuple1;
print tuple1;
報錯:
NameError: name 'tuple1' is not defined
元組相關函數
方法及描述 |
---|
cmp(tuple1, tuple2) 比較兩個元組元素。 |
len(tuple) 計算元組元素個數。 |
max(tuple) 返回元組中元素最大值。 |
min(tuple) 返回元組中元素最小值。 |
tuple(seq) 將列表轉換爲元組。 |
注:此表格來自http://www.runoob.com/python/python-tuples.html點擊鏈接可跳轉到具體內容。