Python列表、元組全面介紹 清晰明瞭

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點擊鏈接可跳轉到具體內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章