python程式設計之路 3 序列

2021-10-03 09:26:12 字數 3452 閱讀 2284

python中,序列是一種資料儲存方式。

序列的結構:

字串、列表、元組、字典、集合

序列中儲存的是整數物件的位址,而不是整數物件的值。

列表中的元素可以是不相同的,可以是任意型別的。

列表大小可變。

建立

基本語法

list()

list(range(int))

推導式例:a = [x*2 for in range(100) if x%9==0]

新增

extend()

原地建立,推薦多個元素使用

insert(位置,元素)

指定位置,插入元素影響後面元素的移動。

+產生新的物件。

乘法擴充套件

通過乘法,使列表多次重複。

刪除

del()

刪除指定位置的元素。

pop(位置)

刪除並返回指定位置元素,未指定位置默默人操作最後乙個元素。

remove()

刪除首次出現的元素,若元素不存在,該元素丟擲異常。

訪問

index()

獲得指定元素在列表中首次出現的索引

count()

返回指定元素在列表**現的次數

len()

返回列表長度

in成員資格判斷

排序

sort()

修改源列表,預設公升序

sort(reverse=true)

降序排列

random.shuffle()

隨機排列

sorted()

新建列表排序,預設公升序

reversed()

返回迭代器,不對原表做任何修改,只返回逆序排列的迭代器物件。

其他

max()

返回最大值

min()

返回最小值

sum()

對數值型列表的所有元素進行求和,對非數值型元素列表運算報錯。

列表中的二維列表

一維列表儲存一維、線性的資料。

二維列表儲存二維、**的資料。

a[行][列]

元組的元素不能修改。

元組的訪問和處理速度比列表快。

元組可以作為字典的鍵,列表永遠不能作為字典的鍵使用。

建立

小括號建立,小括號可省略

tuple()

可以將字串、range函式、陣列轉換成元組。

生成器推到建立

例:a = (x*2 for x in range(10))

通過tuple(a)或a.next()依次呼叫

訪問

元組 的訪問和列表的訪問相似。

元組中,沒有list.sorted()方法,

對元組進行排序,只能使用內建函式sorted()生成新的 物件列表。

組合

zip()

將多個列表對應位置的元素組合成為元組,返回zip物件。

字典中儲存鍵值對。

鍵值對是無序可變序列,字典中的每乙個物件都是乙個鍵值對,包含:「鍵物件」和「值物件」。

通過「鍵物件」實現快速獲取、刪除、更新對應的「值物件」。

「鍵物件」是任意不可改變資料。

「值物件」是任意資料,可重複。

建立

dict()

方法一:b = dict(name=」xiaoming」,age=」20」)

方法二:c = dict([(「name」,」xiaoming」),(「age」,」20」)])

zip()

fromkeys()

建立值為空的字典。

例:a = dict.fromkeys[『name』,』age』,』job』]訪問

訪問指定鍵,獲得對應值。

get()

指定鍵不存在返回none,也可以返回指定的物件。

例:a.get(『name鍵』,』指定返回的物件』)

items()

列出所有的鍵值對

keys()

列出所有的鍵

values()

列出所有的值

len()

鍵值對的個數

in判斷成員

新增

存在,則覆蓋

不存在,新增

update()

將新字典中的所有鍵值對全部新增到就舊字典物件上,如果key右重複,則直接覆蓋。

例:a.update(b)-------------------將b新增到a上(b為新字典,a為舊字典)

刪除

del()

刪除指定

clear()

刪除全部

pop()

刪除指定,並返回

popitem()

隨機刪除並返回簡直對

序列解包在字典中的使用

name,age,job=s-------------------預設對鍵進行解包

name,age,job=s.values-------------------對值進行解包

name,age,job=s.itms-------------------對鍵值進行解包

放入

1.計算放入『鍵』的雜湊值(hash()計算)

2.拿出雜湊值最右邊的規定的數字作為偏移量

3.通過檢視偏移量在bucket中是否右位置,有,儲存。沒有,在雜湊值中依次取偏移量在來計算。

4.bucket中有2/3已滿,則擴大容量

取出

1.計算要取出』鍵『的雜湊值

2.在bucket中的對應位置是否為空,空,返回none。不為空,計算bucket中對應位置的鍵的雜湊值,和要取出的雜湊值比較,相等返回,不相等,依次取其他幾位數字,重新計算偏移量,依次取完後,仍然沒有找到,則返回none。

集合是無序可變的,元素不能重複。

集合底層是字典的實現。

集合的所有元素都是字典中的『鍵物件』,因此不能重複且唯一。

建立和刪除

建立-------------------{}

新增-------------------add()

轉換成集合-------------------set()

刪除-------------------remove()

清空整個集合-------------------clear()

相關操作

| union 並集

& intersectiiin 交集

Python學習之路(1) 序列解包

序列解包 python中一次給多個變數賦多個值 基本方法就是一次性將乙個元組賦值給多個變數 序列解包 value 1,2,3 print type value print value x,y,z value print x,y,z print x print y print z print type...

程式設計之法 1 3序列的列印

寫乙個程式,列印輸出如下序列 a b c d e f g h z a,b a,c a,d a,z b,c b,d y,z a,b,c a,b,d a,b,e a,b,f a,b,g a,b,h a,c,d a,c,e b,c,d b,c,e b,c,f b,c,g b,c,h x,y,z a,b,c...

python3 序列切片

格式 切片使用兩個冒號分隔的3個數字來完成。第乙個數字表示切片開始位置 預設為0 第二個數字表示切片截止 但不包含 位置 預設為列表長度 第三個數字表示切片的步長 預設為1 當步長省略是可省略最後乙個冒號。1.切片操作不會因為下標越界而丟擲異常,而是簡單地在列表尾部截斷或者返回乙個空列表。alist...