You don't have javascript enabled. Good luck! :(

This is a test

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

To add new posts, simply add a file in the _posts directory that follows the convention YYYY-MM-DD-name-of-post.ext and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

Jekyll also offers powerful support for code snippets:

def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.

Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.

  Jun 20, 2018     WenYuan     Python3  UPDATE: Jun 21, 2018

[Python] 學習使用集合 (Set)

集合 (Set) 其實和數組 (Tuple) 與串列 (List) 很類似, 不同的點在於集合不會包含重複的資料


宣告與建立集合 (Set)

set1 = set()# 建立空的集合

set2 = {1, 2, 3, 4, 5}

# 從串列 (List) 來建立集合
set3 = set([i for i in range(20, 30)])

# 從數組 (Tuple) 來建立集合
set4 = set((10, 20, 30, 40, 50))

# 集合不會包含重複的資料, 你可以從 set5 印出來的結果得知
set5 = set((1, 1, 1, 2, 2, 3))

print(set1)
print(set2)
print(set3)
print(set4)
print(set5)

注意: 建立空集合的方法是 set1 = set() 而不是 set1 = {}


集合加入與刪除元素

可以使用 add(value) 來加入新元素, 也可以使用 remove(value) 來移除元素

set2 = {1, 2, 3, 4, 5}
set4 = set((10, 20, 30, 40, 50))

set2.add(6) # 在 set2 中加入 6
set4.remove(20) # 將 set4 中的 20 刪除

print(set2)
print(set4)


集合可使用的函式

與串列 (List) 和數組 (Tuple) 一樣可以使用以下函式

len() 回傳長度

sum() 回傳總和

max() 回傳最大值

min() 回傳最小值

set1 = {2, 4, 6, 8, 10}

print(len(set1))
print(sum(set1))
print(max(set1))
print(min(set1))


判斷元素是否存在於集合中

與串列 (List) 和數組 (Tuple) 一樣可以使用 innot in 來判斷元素是否存在於集合中

set1 = {2, 4, 6, 8, 10}

print(2 in set1)
print(11 in set1)
print(3 not in set1)
print(4 not in set1)


利用 for 迴圈來印出集合

因為集合 (Set) 沒辦法使用索引 (Index) 來印出, 所以用 for 迴圈寫時要這樣寫

set1 = {2, 4, 6, 8, 10}

for i in set1:
	print(i, end = ' ')

注意: 集合和串列數組不同, 不可以使用索引來擷取特定元素


聯集 交集 差集 對稱差集

union : 聯集

intersection : 交集

difference : 差集

symmetric_difference : 對稱差集

setA = {1, 6, 8, 10, 20}
setB = {1, 3, 8, 10}

# 以下兩個都是 聯集 的寫法
print(setA.union(setB))
print(setA | setB)

# 以下兩個都是 交集 的寫法
print(setA.intersection(setB))
print(setA & setB)

# 以下兩個都是 差集 的寫法
print(setA.difference(setB))
print(setA - setB)

# 以下兩個都是 對稱差集 的寫法
print(setA.symmetric_difference(setB))
print(setA ^ setB)

聯集: A B 集合的所有項目

交集: A B 集合的共有項目

差集: A 集合扣掉 A B 集合的共有項目

對稱差集: A B 集合的獨有項目


子集合與超集合

除了上面提到的集合外, 還有其他兩種集合: 子集合 (subset) 與超集合 (superset)

子集合 (sebset) : 若 A 集合的所有項目是 B 集合的部分集合, 則稱 A 為 B 的子集合

超集合 (superset) : 若 A 集合的所有項目是 B 集合的部分集合, 則稱 B 為 A 的超集合

setA = {1, 6, 8}
setB = {1, 6, 8, 10, 20}

# 使用 issubset() 來判斷 A 是否為 B 的子集合
print(setA.issubset(setB))

# 使用 issuperset() 來判斷 B 是否為 A 的子集合
print(setB.issuperset(setA))


判斷兩個集合是否相等

使用 ==!= 來判斷兩個集合是否相同

setA = {1, 6, 8}
setB = {1, 6, 8, 10, 20}

print(setA == setB)
print(setA != setB)