1. 程式人生 > >Head First--------Python(1)列表

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'])