python-集合

  • 2020 年 1 月 13 日
  • 筆記

Set (集合)

1 Set 定義:set可以用{}表示,但是不能用s{}這樣定義,如果這樣寫,python編輯器會默認為是字典。

這樣定義就不會是字典,裡面加一些內容。

2 元祖和列表是有序的,集合是無序的且集合中的元素不重複。(python根據集合中的每個元素的hash值來判斷元素是否重複,所以集合中的每個元素必須是可hash的對象,在python中如果一個對象有一個_hash_的方法,表示該對象可hash)

3 集合的操作。

(1)add(添加的數是隨機加入集合的)

(2)update(就相當於list中的extend方法,將迭代器中的元素追加到集合中)

(3)remove 刪除集合里的某個元素,如果集合內無此元素那麼就會報錯。

(4)discard 刪除集合內某個元素,如果集合內無此元素不做任何操作。

(5)pop隨機刪除某個元素,並返回改元素。(返回的元素如果是要用可以用一個變數接受)

(6)clear清空集合。

4 集合的運算

(1.1 ) difference 兩個集合的差集,不修改原來的集合。

S1.difference(s2) 表示在s1集合里有的元素在s2集合里沒有。

# s1 – s2 也表示的是difference。

(1.2) difference_update 兩個集合的差集,但修改了原來集合的內容,不返回值。(這些例子是s1相對於s2)

S1={1,2,3,4,』a』} s2={3,4,5,6,』c』,』b』}

(2.1)intersection兩個集合的交集,返回值,不修改原來集合的內容。

(2.2)intersection_update兩個集合的交集,無返回值,修改原來集合的內容。

# s1 & s2 可以直接求兩個集合的交集

(3.1)union 兩個集合的並集,無返回值,不修改原來的集合內容。

(4.1)isdisjoint查看兩個集合是否有交集,Flase是無,True是有(每個python的解釋器版本一樣返回值也不一樣,此例是2.7.1)

(4.2)issubset 查看是否有子集。

5 集合不能切片。

Tags: