Head First--------Python(1)列表
Python--------List(列表)
目錄
序列是Python中最基本的資料結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。
Python有6個序列的內建型別,但最常見的是列表和元組。
序列都可以進行的操作包括索引,切片,加,乘,檢查成員。
此外,Python已經內建確定序列的長度以及確定最大和最小的元素的方法。
列表是最常用的Python資料型別,它可以作為一個方括號內的逗號分隔值出現。
列表的資料項不需要具有相同的型別
列表就像是陣列
在python中建立一個列表時,直譯器會在記憶體中建立一個類似陣列的資料結構來儲存資料,資料項自下而上堆放。類似於其他程式語言中的陣列技術,堆疊中的第一個Index為0,第二個為1
movies=['The Holy Grail','the life of Brain']
movies就是一個列表
The_first_movie_name=movies[0]
The_second_movie_name=movies[1]
這樣就把字串‘The Holy Grail’賦值給The_first_name,'the life of Brain'賦值給The_second_movie_name
列表List有兩種建立方法:
1. theFrist_list=list()
2. theSecond_list=[]
這兩種沒有什麼區別,看個人習慣而定
List可以存放不同型別的資料
你可以在List中存放int型別的,然後再存放String字串,甚至還可以鑲嵌List
a_list=[50,'一二三',['三二一',50]]
你還可以在List中存放class型別資料
List列表的基本操作
1.向列表中新增資料 list.append(資料)
append會將資料自動新增到list的末尾去
2.去除list中的資料 list.pop(index)
去除list中Index的資料並返回
3.去除list中的指定資料
list.remove(資料)
如果資料並不存在list中,python會丟擲異常錯誤
4.合併兩個list
a=[1,2] b=[4,5] a.extend(b)
遍歷檢視List的元素
處理每一個列表項是一個相當常見的需求,所以python通過內建的for迴圈可以很方便的做到這一點
其結構如下: for 目標識別符號 in 列表 :
程式碼操作
python會將列表中的每一項逐一賦值給目標識別符號,這一個操作和java的for-each操作類似
name_list=['小明','小華','小芳']
for name in name_list:
print(name)
如何遍歷列表中的列表?
name_list=['小明',['小芳','女',19],['小華','65kg']]
假如我們用普通的for 迴圈遍歷會有如下結果
你會發現遍歷出來還是List
解決之道——遞迴!!!
def get_name(name_list):
for name in name_list:
#name_list為輸入引數
if isinstance(name,list):
#判斷引數是否為列表
#如果為列表執行以下操作
get_name(name)
else:
#否則執行下面操作
print(name)
通過遞迴的方法,可以把很多複雜的程式碼變為簡單,遞迴函式不需要改變任何就可以正確地處理任意深度的鑲嵌列表
如何統計list中出現頻率最大的元素?
from collections import Counter
worlds=['hello','world','hello','a','b','b','b']
world_counts=Counter(worlds)
count_list=world_counts.most_common()
print(count_list)
這裡我們要匯入python系統自己帶的collecitons模組中的Counter
你把你要統計的List傳入給Counter
然後呼叫它的most_commmon()函式,其中括號中可以輸入你想統計頻率最高的哪幾個元素(頻率由高往低),不填預設是全部
其中world_counts是一個dict型別,所以你可以直接檢視單個單詞的出現次數
print(world_counts['hello'])