開始之前:本文的所有程式是連續的
1.4.5 將列表值排序sort()
1.4.6 列表的相加和複製
2. 元組
列表和元組本身可以包含很多值,這樣就使得我們處理較多資料時變得方便,下面我就記錄一下在我們python程式設計過程中常用的這兩種資料型別,以及它們的用法
我們使用[ ]來表示乙個列表,裡面的值可以是數字也可以是字串,如下例所示:
list1 =[1
,2,3
,4,5
]list2 =
['cat'
,'dog'
,'pig'
]print
(list1)
print
(list2)
輸出結果即為:
[1, 2, 3, 4, 5]
[『cat』, 『dog』, 『pig』]
這和c++陣列的用法很像,python中列表的第乙個元素的下標為0,後面以此類推,因此,我們可以用:列表名[下標]的方式獲取列表的單個值(注意:下標不能超過列表的 最大長度-1)
如下例所示:
print
(list1[2]
) #輸出3
print
(list2[1]
) #輸出'dog'
當然,也可以反向表示,比如下標-1就是最後乙個元素,-2是指倒數第二個元素
我們可以使用切片法,即:列表名[起始元素下標 : 終止元素下標]的方法來取得子列表
注意:切片的範圍包括起始元素,不包括終止元素在非互動式編輯環境中,得使用賦值操作才會讓取得原來列表的切片
如下例所示:
list1 = list1[1:
4]
list2 = list2[0:
2]print
(list1)
print
(list2)
輸出結果:
[2, 3, 4]
[『cat』, 『dog』]
l
=len
(list1)
print(l
)
輸出結果為3
如下例所示:
list1.(5
)list2.
insert(1
,'monkey'
)print
(list1)
print
(list2)
輸出:
[2, 3, 4, 5]
[『cat』, 『monkey』, 『dog』]
del() 的用法:del 列表名[想要刪除的元素的下標]
remove()的用法:列表名.remove(想要刪除的值)
如下例所示:
del list1[1]
list2.
remove
('monkey'
)print
(list1)
print
(list2)
輸出:
[2, 4, 5]
[『cat』, 『dog』]
注意:如果某乙個值在列表**現多次,那麼remove()方法只會刪除第一次出現的值
1.4.4.1 in 和 not in 操作符
為了判斷某個值是否在列表裡面,我們可以用 「元素值」 in / not in 列表 的方式判斷,返回值是true或false,如下所示:
4
in list1 #對應true
'monkey'
in list2 #對應false
'pig' not in list2 #對應true
1.4.4.2 用index()方法查詢
index()的引數是需要查詢的元素的值,如果該值存在於列表之中,就返回它的下標,如果不在,就報錯,如下例所示:
list1.
index(4
)
輸出1
list2.
index
('monkey'
)
結果會報錯:
valueerror \quad\quad
traceback (most recent call last)
in ()
----> 1 list2.index(『monkey』)
valueerror: 『monkey』 is not in list
對於只有數字或者只有字串的列表,我們可以使用sort()進行排序,如下例所示:
list3 =[5
,6,1
,2,-
8,0]
list4 =
['dog'
,'cat'
,'monkey'
,'lion'
]list3.
sort()
list4.
sort()
print
(list3)
print
(list4)
輸出:
[-8, 0, 1, 2, 5, 6]
[『cat』, 『dog』, 『lion』, 『monkey』]
值得說明的幾件事:
sort()方法對列表進行當場排序,因此,不要寫成:list3 = list3.sort()的形式,否則會返回none
sort()方法對字串列表進行排序時,使用的是ascii字元順序
如果想按照字典順序排列,則在sort()的引數中寫上key = str.lower
不要對那些既有數字又有字串的列表呼叫sort()
我們可以對兩個列表使用+表示將他們合二為一,如下例所示:
list5 = list3 + list4
print
(list5)
輸出:[-8, 0, 1, 2, 5, 6, 『cat』, 『dog』, 『lion』, 『monkey』]
我們還可以用乙個列表和乙個整數相乘以實現列表的複製:
list6 =[1
,2,3
]list6 = list6 *
2print
(list6)
輸出:[1, 2, 3, 1, 2, 3]
輸入形式的不同:元組的輸入使用(…),而不是[…]
元組不能讓他們的值被修改,新增或刪除
print
(type((
'dog'))
) #str
print
(type((
'dog',)
)) #tuple
輸出:
使用list()作用於乙個元組,可以將其變為列表,使用tuple()作用於乙個列表可以將其轉化為乙個元組,注意,這兩個函式是需要使用賦值來返回的,我們看看下面的例子:
spam =[1
,2,3
,4,5
]spam =
tuple
(spam) #請注意這裡是需要賦值來返回的
print
(spam)
print
('\n'
)spam =
list
(spam)
print
(spam)
輸出:
(1, 2, 3, 4, 5)
[1, 2, 3, 4, 5]
1 列表和列表項
列表 列表是乙個資料結構,用來追蹤任務,列表中有乙個指標指向列表項 列表是乙個結構體,內部攜帶乙個指標,指標指向列表項,列表項形成雙向鏈式結構掛載在列表下 乙個列表下面可以有很多的列表項,每個列表項都會有乙個指標指向這個列表,下面是乙個列表 typedef struct xlist list t l...
Python學習1 列表
str 轉換成字串 可以用來避免型別出錯 用方括號表示 列表是從0開始索引而不是1 del 刪除知道位置的元素不繼續使用該值 pop 刪除已知位置的元素並繼續使用該值 remove 刪除已知元素的值,也可以繼續使用該值,但是remove只能刪除一次,不能刪除重複的值,需要迴圈刪除 sort 對列表進...
Python高階06 列表推導
列表推導是一種從其他列表建立列表的方式,類似於數學中的集合推導。列表推導的使用方式非常簡單,有點類似於for迴圈。x x for x in range 10 0,1,4,9,16,25,36,49,64,81 如果想列印那些能被3整除的平方值呢?這時候可以在列表推導中新增一條if語句 x x for...