我 4 # python內建資料結構
python 還提供了另外一種資料型別:set
。
set
用於包含一組無序的不重複物件。所以set
中的元素有點像dict
的key
。這是set
與list
的最大區別
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支援in
和not 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...