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...