您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python中列表、元組、集合、字典有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一組有順序的數據的組合,可進行增刪改查
賦值操作
常用函數 del ls[2]:刪除,
可以將列表乘一個整數,表示多個列表鏈接在一起
a = ['a',2,3,4,5] b= 2 c = a *b print(c) #輸入結果如下 ['a', 2, 3, 4, 5, 'a', 2, 3, 4, 5]
雙層列表循環和dict 用法一致,要求每個列表只有兩個值:for k,v in ls:
列表內涵:快速建立列表
通用函數:len,min,max,其他類型也通用的函數
append:在末尾添加,insert(index,data):在index前面插入
pop()彈出最后一個,返回值的彈出的數據.
remove:在列表中刪除指定的值的第一個元素
clear:清空列表,id 不變
reverse():反轉
extend 擴展列表 a =[1] b=[2] a.extend(b) a== [1,2]
count():統計某個數據出現的次數
copy屬于淺拷貝,即只是拷貝一層
ls = list() ,ls = []
下標從0開始,最后一個數可使用-1訪問,依次類推
可使用其切片操作[:],反序排列[::-1]
進行切片和copy()后的新list的ID原id不一致,其他方法:
賦值\append\del\等id和原list一致
賦值操作是傳址,copy是傳值
a = [x for x in range(1,35)] #生成從1到34的一個列表 # 把a中所有偶數生成一個新的列表 b b = [m for m in a if m % 2 == 0] print(b) #.. c = [ m+n for m in a for n in b if m+n < 250] print(c)
# 深拷貝跟淺拷貝的區別 # 出現下列問題的原因是,copy函數是個淺拷貝函數,即只拷貝一層內容 # 深拷貝需要使用特定工具 a = [1,2,3, [10, 20, 30]] b = a.copy() print(id(a)) print(id(b)) print(id(a[3])) print(id(b[3])) a[3][2] = 666 print(a) print(b) #輸出結果如下: 140249408365768 140249409236040 #a[3] 和b[3] id一致,說明還是指向同一地址 140249409236232 140249409236232 [1, 2, 3, [10, 20, 666]] [1, 2, 3, [10, 20, 666]]
元組可看成是不可更改的list
特性:
是序列表,有序
元組數據值可以訪問,不能修改和刪除,指的是內容不可修改,參考下例
元組數據可以是任意類型
list所有特性,除了可修改外,元組都具有
也就是說,list具有的一些操作,比如索引,分片,序列相加,相乘,成員資格操作等,一模一樣
# 元組相加 t1 = (1,2,3) t2 = (5,6,7) # 傳址操作 print(t1) print(id(t1)) t1 = t1 + t2 print(t1) print(id(t1)) # tuple 的不可修改,指的是內容的不可修改 # 修改和刪除tuple內容會導致報錯 t1[1] = 100 del(t1[2]) #元組相乘 t2 =t2 *2
集合是高中數學中的一個概念
一堆確定的無序的唯一的數據,集合中每一個數據成為一個元素
特性:
集合內數據無序,即無法使用索引和分片
集合內部數據元素具有唯一性,可以用來排除重復數據
集合內的數據,str, int, float, tuple,冰凍集合等,即內部只能放置可哈希數據
如果定義時有重復數據則自動過濾重復數據
s = {3,1,2,3,4,3,2,3,1,2,4,3}
s == {1,2,3,4}
# 多循環的集合內涵 s1 = {1,2,3,4} s2 = {"i", "am", "stu"} s = {m*n for m in s2 for n in s1} print(s) s = {m*n for m in s2 for n in s1 if n ==2} print(s)
add(),添加數據
copy(),拷貝
remove:移除指定的值,直接改變原有值,如果要刪除的值不存在,報錯 : s.remove(1)
discard:移除集合中指定的值,跟remove一樣,但是入股要刪除的話,不報錯:s.discard(1)
pop 隨機彈出一個元素
集合函數
# intersection: 交集 # difference:差集 等于s1 -s2 # union: 并集 # issubset: 檢查一個集合是否為另一個子集 # issuperset: 檢查一個集合是否為另一個超集 s1 = {1,2,3,4,5,6} s2 = {5,6,7,8,9} s_1 = s1.intersection(s2) print(s_1) s_2 = s1.difference(s2) print(s_2) s_3 = s1.issubset(s2) print(s_3)
fronzenset:冰凍集合
一種特殊集合:不可以進行任何修改的集合
s = frozenset()
字典是沒有順序的組合數據,數據以鍵值對形式出現
創建:
# 創建有值的字典, 每一組數據用冒號隔開, 每一對鍵值對用逗號隔開 d = {"one":1, "two":2, "three":3} print(d) d = dict({"one":1, "two":2, "three":3}) print(d) # 利用關鍵字參數 d = dict(one=1, two=2, three=3) print(d) # d = dict( [("one",1), ("two",2), ("three",3)]) print(d['one'])
特性:
字典是序列類型,但是是無序序列,所以沒有分片和索引
字典中的數據每個都有鍵值對組成,即kv對
key: 必須是可哈希的值,比如int,string,float,tuple, 但是,list,set,dict 不行
value: 任何值
d = {"one":1, "two":2, "three":3} # 使用for循環,直接按key值訪問 for k in d: print(k, d[k]) # 上述代碼可以改寫成如下 for k in d.keys(): print(k, d[k]) # 只訪問字典的值 for v in d.values(): print(v) # 注意以下特殊用法 for k,v in d.items(): print(k,'--',v)
keys():返回字典的鍵組成的一個結構
values():返回字典的值組成的一個結構
items():返回字典的鍵值對組成的元組格式
get():根據指定鍵返回相應的值, 可以設置默認值
d.get('one',100)
fromkeys 使用指定的序列作為鍵,使用一個值作為字典的所有的鍵的值
l = ["eins", "zwei", "drei"] # 注意fromkeys兩個參數的類型 # 注意fromkeys的調用主體 d = dict.fromkeys(l, "hahahahahah") print(d)
關于“python中列表、元組、集合、字典有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。