Python基礎練習 資料結構大彙總 集合

2021-10-09 09:19:09 字數 2900 閱讀 4607

1、集合的建立

basket =

set(

)basket.add(

)basket.add(

'banana'

)print

(basket)

set(value)工廠函式,可以把列表或元組轉換成集合。

a =

set(

'abracadabra'

)print

(a)#

2、訪問集合中的值

可以使用in或not in 判斷元素是否存在。

3、集合的內建方法

set.add(elmnt)給集合新增元素,如新增的元素在集合中已存在,則不執行任何操作

set.update(set)用於修改當前集合,可以新增新的元素或集合到當前集合中,如果新增的元素在集合中已存在,則該元素只會出現一次,重複的會忽略。

set.remove(item) 用於移除集合中的指定元素。如果元素不存在,則會發生錯誤。

set.discard(value) 用於移除指定的集合元素。remove() 方法在移除乙個不存在的元素時會發生錯誤,而 discard() 方法不會。

set.pop() 用於隨機移除乙個元素。

set.intersection(set1, set2) 返回兩個集合的交集。

set1 & set2 返回兩個集合的交集。

set.intersection_update(set1, set2) 交集,在原始的集合上移除不重疊的元素。

set.union(set1, set2) 返回兩個集合的並集。

set1 | set2 返回兩個集合的並集。

set.difference(set) 返回集合的差集。

set1 - set2 返回集合的差集。

set.difference_update(set) 集合的差集,直接在原來的集合中移除元素,沒有返回值。

set.symmetric_difference(set)返回集合的異或。

set1 ^ set2 返回集合的異或。

set.symmetric_difference_update(set)移除當前集合中在另外乙個指定集合相同的元素,並將另外乙個指定集合中不同的元素插入到當前集合中。

set.issubset(set)判斷集合是不是被其他集合包含,如果是則返回 true,否則返回 false。

set1 <= set2 判斷集合是不是被其他集合包含,如果是則返回 true,否則返回 false。

set.issuperset(set)用於判斷集合是不是包含其他集合,如果是則返回 true,否則返回 false。

set1 >= set2 判斷集合是不是包含其他集合,如果是則返回 true,否則返回 false。

set.isdisjoint(set) 用於判斷兩個集合是不是不相交,如果是返回 true,否則返回 false。

集合的轉換

se =

set(

range(4

))li =

list

(se)

tu =

tuple

(se)

print

(se,

type

(se)

)#

print

(li,

type

(li)

)# [0, 1, 2, 3]

print

(tu,

type

(tu)

)# (0, 1, 2, 3)

不可變集合

frozenset([iterable]) 返回乙個凍結的集合,凍結後集合不能再新增或刪除任何元素。

序列1、對於內建函式

tuple(sub) 把乙個可迭代物件轉換為元組。

list(sub) 把乙個可迭代物件轉換為列表。

str(obj) 把obj物件轉換為字串

reversed(seq) 函式返回乙個反轉的迭代器。

seq – 要轉換的序列,可以是 tuple, string, list 或 range。

enumerate(sequence, [start=0])

用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。

zip(iter1 [,iter2 […]])

用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的物件,這樣做的好處是節約了不少的記憶體。

我們可以使用 list() 轉換來輸出列表。

如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組解壓為列表。

a =[1

,2,3

]b =[4

,5,6

]c =[4

,5,6

,7,8

]zipped =

zip(a, b)

print

(zipped)

# print

(list

(zipped)

)# [(1, 4), (2, 5), (3, 6)]

zipped =

zip(a, c)

print

(list

(zipped)

)# [(1, 4), (2, 5), (3, 6)]

a1, a2 =

zip(

*zip

(a, b)

)print

(list

(a1)

)# [1, 2, 3]

print

(list

(a2)

)# [4, 5, 6]

Python基礎練習 資料結構大彙總

day 2 依舊是記錄在學習過程中容易混淆的點 列表 簡單資料型別 容器資料型別 字串 2.獲取列表中的元素 例子 淺拷貝與深拷貝 list1 123 456 789 213 list2 list1 list3 list1 print list2 123,456,789,213 print list...

Python基礎練習 資料結構大彙總(第6天)

集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立格式 parame 或者set value python標準庫中的序列型別使用c語言實現,大體上可分為下面幾類。容器序列 list tup...

python資料結構練習

貝葉斯估計用到的資料結構 pandas常用到的 索引與切片,unique,value counts reindex,sort index 可以用於seires,也可以是dataframe,但只對index本身,index或columns本身進行排序,而不是其對應的元素進行排序 order 對seri...