list是python內建的一種有序、可變的資料結構。
一、如何建立乙個list?
示例:注意:list中的元素可以是任意的資料型別如字串、數字、布林值、none等,也可以是其他的資料結構如另外乙個list,tuple,dict等。
二、如何取出list中的元素?
1、取乙個元素,用列表索引。
語法:list [ i ]。i 是索引位置。第乙個元素索引值為0;i 也可以小於0,代表索引值從後往前取,如最後乙個元素索引值為-1,倒數第二個為-2,如此類推。
示例:2、取多個連續的元素,用列表切片。
語法:list [ start : end : step ] 。
start為開始切片的索引值;end為結束切片的索引值,這裡切片取得的元素不包括索引為end的這個元素,即實際取得的元素是索引為start至end-1這些元素;step為切片的步距,預設step=1。
列表切片分為正向切片與反向切片,
正向切片:
反向切片:
這裡有人會問,b = mylist[3:0]不是應該取出 [2,1,0]嗎?其實這裡跟step的取值有關。
當正向切片時,step必須大於0;當反向切片時,step必須小於0。
因為上面b = mylist[3:0]中的step預設為1,所以取出的是空列表。
所以我們想b = mylist[3:0]能正確取出[2,1,0],只要把step設定成-1就可以了。
由於這裡start和end實際上是元素的索引值,所以這裡start和end也可以是負數,只不過正向切片和反向切片也要遵守(當正向切片時,step必須大於0;當反向切片時,step必須小於0)這個規則就是了。所以step正負與索引值的正負無關,而與切片的方向有關。
注1:若start和end是第乙個或者最後乙個元素的索引值,可省略。
mylist[::-1]是常用的反轉列表的方法。有人可能會問:為什麼mylist[::-1]能夠取得元素?不是說step必須與切片方向一致嗎?
其實這裡mylist[:] = mylist[0:] = mylist[-1:],所以這裡的mylist[::-1] = mylist[-1::-1]。
注2:這裡的列表索引與列表切片都是建立乙個新的副本,而原列表不會發生變化。所以列表索引和列表切片必須要賦給乙個新變數,否則新副本只會建立出來放在記憶體中而取不出來。
三、list的常用方法。
1、增:
示例:(2)插入:在列表任意位置插入乙個新元素。語法:mylsit.insert(i, 新元素),i是想把新元素插入的索引值。
示例:2、刪:
(1)彈出:將列表裡的任意乙個元素彈出。語法:mylist.pop(i=-1),這裡i的預設值為-1,即預設彈出最後乙個元素。
這裡為什麼叫彈出?因為一般的列表方法都沒有返回值,而是直接在原列表上進行改動,而pop方法是有返回值的,返回值就是彈出的元素,可以把返回值賦給乙個新的變數。
示例:(2)移除:刪除列表中的任意乙個元素。語法:mylist.remove(列表元素)。
彈出與移除比較:彈出引數為索引值而移除引數為列表元素;彈出有返回值而移除沒有返回值。
示例:示例:
4、排序:將列表中的元素按照順序排列。語法:mylist.sort()
示例1:
示例2:
注:數字與字串不能排列!
5、反**將列表裡面的順序反轉過來。語法:mylist.reverse()
示例:四、list常用的內建函式。
1、len(list):計算列表長度。
2、sorted(list):列表排列,與mylist.sort()效果相同,唯一區別是sorted()是建立乙個新的排列好的列表作為返回值。
3、reversed(list):列表反轉,同上sorted()同等道理。
4、enumerate(list, start=0):列舉列表中的元素,返回乙個tuple-enumerate物件。其中start引數控制列舉開始的序號,預設值為0.
示例1:
示例2:
5、zip(list1, list2):將兩個長度相同的列表中的每個元素兩兩壓縮成一起。返回乙個tuple-zip物件。
示例:具體參考:
1、《python核心程式設計(第二版)》:6.3 操作符;6.11 - 6.15 列表。
--------本篇完!
python定義區間 5 5 python作業5
1.給定兩個均不超過9的正整數a和n,要求編寫函式fn a,n 求a aa aaa aa aa n個a 之和,fn須返回的是數列和 函式介面定義 fn a,n 其中 a 和 n 都是使用者傳入的引數。a 的值在 1,9 範圍 n 是 1,9 區間內的個位數。函式須返回級數和 裁判測試程式樣例 請在這...
55 python 類方法和靜態方法
是類物件所擁有的方法,需要用修飾器 classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls作為第乙個引數 當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以 cls 作為第乙個引數的名字,就最好用 cls 了 能夠通過例項物件和類物件去訪問。class ...
Python學習筆記55 爬蟲(隱藏)
1.為了隱藏訪問方式,可以通過兩種方式 方法一 直接設定乙個字典,作為引數傳給request,通過修改request的headers引數修改 head req urllib.request.request url,data,head 方法二 在request生成之後通過add header 方法修改...