河南夢之網網絡科技有限公司
夢之網科技出品
掃描關注夢之網科技微信公眾賬號

掃小程序碼聯系客服

第十四章 數據結構之集合-鄭州網站建設

夢之網科技?2019-08-22?經驗之談?

第十四章 數據結構之集合-鄭州網站建設

集合(set)和其他編程語言類似, 是一個無序不重復元素的數據結構。它的基本功能包括關系測試和消除重復元素,還可以計算交集、差集、并集等。set既然是無序的,那便不記錄元素位置或者插入點,也不支持對元素的排序操作。

14.1 集合聲明

集合可通過大括號{}或set()進行聲明。但用{}聲明時,一定要有元素,否則表示的是字典類型。集合元素可以同時存在不同的數據類型,重復的元素會被合并。

# {}為空時,是dict類型set1 = {1, 2, 3}

print(type(set1), set1)

# 用set()聲明一個空集合

set1 = set()

# 支持不同數據類型

set1 = {"歷史", 100, 25.68}

print(set1)

14.2 新增

通過add(x)方法添加新的元素,如果元素已經存在,不會添加。

# 添加一個對象

p = {"Jaa", "C#"}

p.add("Python")

print(p)

通過update(seq)方法在原集合上一次性添加多個序列的多個值,重復的值會被合并。

# 將set2、set3添加到set1集合里

set1 = {1, 2, 3}

set2 = {4, 5, 6}

set3 = {5, 0, 2}

set1.update(set2, set3)

14.3 刪除

通過pop() 刪除集合里的元素 。在開發工具里測試多次,刪除的元素是隨機的,不一定是最后一個。

# 用pop()刪除元素

set1 = {"Android", "iOS", "Python", "C#"}set1.pop()

remoe(x) 刪除x指定的一個元素,如若指定的x在集合里不存在,會報錯。刪除不會返回值。如果要指定刪除的內容,即使不存在也不會報錯的話,可用discard(x)方法。

# 用remoe()刪除元素

letters = {"a", "b", "c", "d"}

letters.remoe("a")

print(letters)

# 用discard()刪除元素

letters.discard("f")

通過clear()方法清空集合內容。del set 刪除整個集合,刪除后集合不能再訪問。

# 清空集合內容

number = {5, 6, 7, 8}

number.clear()

print(number)

# 刪除整個集合后,不可再訪問

del number

14.4 訪問

可用in或not in關鍵字判斷元素是否存在。

# 用in判斷元素是否存在

lang = {"Chinese", "English", "French", "German"}

if "Japanese" in lang:

lang.remoe("Japanese")

print(lang)

用max(set) 返回集合元素最大值,min(set) 返回集合元素最小值。

# 獲取元素最大值

number = {5, 5, 6, 7, 8}

max_ = max(number)

print(max_)

# 獲取元素最小值

min_ = min(number)

print(min_)

在遍歷集合時,經常會用到集合長度,可用len(set) 計算集合元素個數(既集合長度)。可直接用for循環遍歷元素的內容。集合是無序的,不可以用下標的方式進行訪問。

# 用len()計算集合長度

number = {1, 3, 4, 6}

length = len(number)

print(length)

# 遍歷集合元素

for n in number:

print(n)

14.5 交叉

兩個集合之間會產生交集、并集、差集的情況。intersection()方法找出交集內容,union()方法獲得并集內容, difference()返回集合的差集。可用issubset()判斷指定集合是否為該方法參數集合的子集,issuperset()判斷是否包含了指定集合的內容,是就返回True,否則返回False。

# 兩個集合的交集

n1 = {1, 3, 4}

n2 = {1, 4}

print(n1.intersection(n2))

# 兩個集合的并集

print(n1.union(n2))

# 集合的差集

print(n1.difference(n2))

# n2是否屬于n1的子集

print(n2.issubset(n1))

# n1是包含了n2

print(n1.issuperset(n2))

14.6 轉換

通過set()方法可把字符串、列表、元組轉為集合。

# 字符串轉為集合

s = "string"

set1 = set(s)

# 列表轉為集合

lst = [1, 3, 4]

set2 = set(lst)

print(set2)

# 元組轉為集合

t = ("a", "b", "c")

set3 = set(t)

print(set3)

如果集合內容全是字符串,可直接通過join()方法將集合轉成字符串。如果內容有其他數據類型,通過join(map(str, set))的方式轉換。

# 集合(全字符串內容)轉為字符串

set1 = {"O", "K", "!"}

print("".join(set1))

set1 = {100.66, "K"}

print("".join(map(str, set1)))

文章關鍵詞
第十四
集合
數據結構
2013以太坊价格 132期平特一肖资料 领88元彩金的平台 网赌真人揭秘 上海快3走势图上海 pk10计划软件安卓 江苏快三开奖号码 新浪时时图 香港四不像必中一生肖 江苏时时开奖结果 苍南灵溪本地麻将 安徽快3走势分析 ui大上海时时 全年出码规律永久不变 十一选五天津走势图 欢乐生肖在线看开奖 极速时时彩输了100万