列表、元組、字典與集合
阿新 • • 發佈:2018-09-07
append 以及 一個數 fire sort data 替代 src 它的
一、列表
序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。Python有6個序列的內置類型,但最常見的是列表和元組。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。列表是最常用的Python數據類型,它可以作為一個方括號內的逗號分隔值出現。列表的數據項不需要具有相同的類型,創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。
1、使用[ ]或list()創建列表
list1 = [] list2 = [‘a‘,‘abc‘,‘apple‘,‘Monday‘]
empty = list()
empty
2、用list()轉換其他數據類型為列表
list("apple")#字符串轉列表 tuple_1 = ("apple","fire","ready") list(tuple_1)#元祖轉列表 #split()依據分隔符切割字符串為若幹字串組成的列表 data = ‘1/22/333‘ data.split(‘/‘) #連續分隔符返回列表會出現空串元素 data_1 = ‘a/b//c//d/e‘ data_1.split(‘/‘) data_1.split("//")#分隔符改變
3、獲取元素、修改元素以及使用切片提取元素
(1)獲取元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] print(data[0]) print(data[-1]) #當偏移量小於起始位置或大於末尾位置時會發生異常 print(data[5])#IndexError: list index out of range
(2)修改元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data[1] = ‘delete_1‘ print(data)
(3)使用切片提取元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data[0:2] #從列表開頭開始每兩個提取一個元素 data[::2]#[‘apple‘, ‘pink‘] #尾部提取 data[::-2]#[‘blog‘, ‘delete‘] #列表逆序 data[::-1]#[‘apple‘, ‘delete‘, ‘pink‘, ‘blog‘]
4、包含列表的列表
data_0 = [‘apple_0‘,‘delete_0‘,‘pink_0‘,‘blog_0‘] data_1 = [‘apple_1‘,‘delete_1‘,‘pink_1‘,‘blog_1‘] data_2 = [‘apple_2‘,‘delete_2‘,‘pink_2‘,‘blog_2‘] data = [data_0,data_1,data_2] print(data)#[[‘apple_0‘, ‘delete_0‘, ‘pink_0‘, ‘blog_0‘], [‘apple_1‘, ‘delete_1‘, ‘pink_1‘, ‘blog_1‘], [‘apple_2‘, ‘delete_2‘, ‘pink_2‘, ‘blog_2‘]] print(data[1])#[‘apple_1‘, ‘delete_1‘, ‘pink_1‘, ‘blog_1‘] print(data[1][1])#delete_1
5、主要方法
#append()添加元素到尾部 data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data.append(‘form‘) print(data) #extend()或+=合並列表 data_1 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_11 = [‘apple_11‘,‘delete_11‘] data_1.extend(data_11) print(data_1) data_1+=data_11 print(data_1) #insert()指定位置插入元素 data_2 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_2.insert(2,‘hahaha‘) print(data_2) #del刪除指定位置元素 data_3 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] del data_3[1] print(data_3) #remove刪除指定值的元素 data_4 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_4.remove(‘apple‘) print(data_4) #pop獲取並刪除指定位置元素(不指定偏移量默認為-1) data_5 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_5.pop() print(data_5) data_5.pop(1) print(data_5) #index()查詢特定值位置元素 data_6 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_6.index(‘delete‘) #in判斷值是否存在 data_7 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] ‘apple‘ in data_7#True ‘apple_1‘ in data_7#False #count()特定值出現次數 data_8 = [‘apple‘,‘delete‘,‘apple‘,‘delete‘,‘pink‘,‘apple‘,‘blog‘] data_8.count(‘apple‘)#3 #使用join()轉換為字符串****** data_9 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] ‘,‘.join(data_9)#‘apple,delete,pink,blog‘ func = ‘#‘ joind = func.join(data_9) print(joind) joind_1 = joind.split(func)#join()是split的逆過程 print(joind_1) #len()獲取長度 data_10 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] len(data_10)#4 #sort重新排列元素 #sort()改變原列表內容,sorted()原列表內容不改變 #元素是數字,默認從小到大,reverse = True可改為降序 data_11 = [‘b‘,‘appl‘,‘pi‘,‘del‘] data_11_sd = sorted(data_11) data_11_sd#[‘appl‘, ‘b‘, ‘del‘, ‘pi‘] print(data_11)#[‘b‘, ‘appl‘, ‘pi‘, ‘del‘] print(‘*‘*20) data_11.sort() data_11#[‘appl‘, ‘b‘, ‘del‘, ‘pi‘] #元素是數字時 num = [2,1,4.0,3] num.sort() num #[1, 2, 3, 4.0] num.sort(reverse = True) num #[4.0, 3, 2, 1] #使用=賦值,使用copy()復制 a = [1,2,3,4] b = a a[0] = 11 print(a) print(b) #註意:a與b指向同一個對象 c = [1,2,3,4,5] d = c.copy() e = list(c) f = c[:] c[2] = 33 # 改變c的值不影響d,e,f的值 print(d)#[1, 2, 3, 4, 5] print(e)#[1, 2, 3, 4, 5] print(f)#[1, 2, 3, 4, 5]View Code
二、元組
元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號,列表使用方括號。
#創建空元組 empty = () empty #() #元素只有一個時需要跟著一個逗號***,多個元素隨意 one_tp = ‘apple‘, print(one_tp) more_tp = ‘apple‘,‘pink‘,‘doubt‘ print(more_tp) #元組賦值給多個變量(元組解包) marx_tp =(‘apple‘,‘pink‘,‘doubt‘) a,b,c = marx_tp print(a) print(b) print(c) #多個變量值進行交換不需借助臨時變量 pwd = ‘apple‘ ice = ‘ping‘ pwd,ice = ice,pwd print(pwd) print(ice) #tuple()函數的使用 data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] tuple(data) print(data)
註意:與元組相比,列表比較靈活(列表方法函數較多),但為什麽不在所有地方都使用列表呢?
1、元祖占用空間較少
2、不會意外修改元組值
3、元組可用作字典的鍵
4、命名元組可以作為對象的替代
5、函數的參數是以元組形式傳遞的
三、字典
字典是另一種可變容器模型,且可存儲任意類型對象,如字符串、數字、元組等其他容器模型。
字典的每個鍵值對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中。
1、創建字典
#創建空字典 empty_dt = {} empty_dt#{} data = {"name":"egon","age":28,"addr":"鄭州"} print(data) #使用dict()轉換成字典 data_dict = [["a","b"],["c","d"],["e","f"]] dict(data_dict)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_1 = [("a","b"),("c","d"),("e","f")] dict(data_dict_1)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_2 = (["a","b"],["c","d"],["e","f"]) dict(data_dict_2)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} #雙字符 data_dict_db = ["ab","cd","ef"] dict(data_dict_db)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_db1 = ("ab","cd","ef") dict(data_dict_db1)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘}
2、添加、修改和獲取元素
四、集合
列表、元組、字典與集合