第4章 005內建資料結構 集合

2022-07-09 14:03:12 字數 2635 閱讀 6113

我 4 # python內建資料結構

python 還提供了另外一種資料型別:set

set用於包含一組無序的不重複物件。所以set中的元素有點像dictkey。這是setlist的最大區別

set基本應用有元素測試、去除list、tuple中的重複元素。

set也支援一些數學操作,像:並集(union)、交集(intersection)、差集(difference)、對稱差集(symmetric difference)。

set集合建立方式一般有 2 種:字面量方式和把list、tuple、str等轉換成set

5.1.1 字面量方式建立set集合

字面量方式建立set集合和字面量dict有點像,都是使用的{}來包裹, 只不過set中不是鍵值對而已。

print(basket)

set中不能儲存重複元素

5.1.2 把list中的元素存入到set

使用set建構函式支援把list中的元素直接存入到新建立的set中。

nums1 = [10, 20, 30, 20, 10, 100, 200, 100]

nums2 = set(nums1)

print(nums2)

重複元素也去除成功了!

5.1.3 把字串中的每個字元作為乙個元素存入到set

s = "hello world, i love you"

cs = set(s)

print(cs)

你會發現重複字元已經去除完畢了。

注意:建立空的set不能直接使用字面量的形式{},這樣建立的是空的字典。只能使用set建構函式。

5.2.1支援innot in

nums1 = 

print(10 in nums1) # true

print(20 not in nums1) # false

5.2.2 數學操作

set也支援一些數學操作,像:並集(union)、交集(intersection)、差集(difference)、對稱差集(symmetric difference)。

a = set("abcde")

b = set("defghi")

print("a:" + str(a))

print("b:" + str(b))

print("a - b 差集: " + str(a - b)) # 差集 a 中有,但是 b 中沒有

print("a | b 並集: " + str(a | b)) # 並集 a 和 b 的元素全部都有 當然不會重複

print("a & b 交集: " + str(a & b)) # 交集 a 和 b 共同有的元素

print("a ^ b 對稱差集: " + str(a ^ b)) # 對稱差集 a 有或者 b 有,但是不是他們都有

5.2.3set推導

list推導一樣,set也支援set推導

a = 

print(a)

5.2.4 在集合中新增新項

s = set("hello")

s.add("z") # 新增一項

print(s)

s.update(["x", "y"]) # 新增多項

s.update("mn") # 新增多項

print(s)

內建資料結構集合和字典

特性 不支援重複和連線,也不支援索引和切片,支援成員操作符和for迴圈 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從大...

(資料結構python版)第4章遞迴

階乘函式 n 1 n times n 1 times n 2 3 times2 times1 end n n 0 n geq1 end format total path return total乙個糟糕的遞迴顯示導致嚴重的效率低下 def bad dibonacci n if n 1 return...

第9章 資料結構

第9章 資料結構 my frames,button my sub of 日誌查詢 push button2 溫金簡訊查詢 push button3 中均簡訊查詢 push button4 機器資訊查詢 push button5,ip資訊查詢 push button6,裝置資訊維護 push butt...