python入門 集合(四)

2022-04-23 06:51:16 字數 1890 閱讀 5840

集合是乙個無序的不重複元素序列,可以迭代,也可以修改。集合迭代的時候元素是隨機的。

集合通常用來 membership testing, 去重, 也可以用來求交集並集補集。

介紹一下如何建立集合和集合常見的用法。

>>> s1 = set()

>>> print(s1)

set()

>>> l1 = [1, 2, 3, 4, 5, 4, 3]

>>> s2 = set(l1)

>>> print(s2)

#可以看到集合可以用來去重

>>> s3 = set('jwang')

>>> print(s3)

# 可以看到集合迭代的時候元素是隨機的

>>> s4 = set(["c", 「c++」, 「python」])

>>> print(s4)

新增add

>>> print(s2)

>>> s2.add(6)

>>> print(s2)

>>> s2.add((7,8))

>>> print(s2)

更新:通過傳入乙個列表來更新 update(list)

>>> print(s2)

>>> s2.update([6, 0])

>>> s2

>>> s2.update([7, 8, 9], [10, 11])

>>> s2

>>>

更新:通過傳入乙個集合來更新 update(set)

>>> s2.update()

>>> s2

刪除 remove(val) discard(val)

不同點是remove在元素不存在時會報錯,discard什麼也不做。

>>> s2.remove(0)

>>> s2

>>> s2.discard(0)

>>> s2.remove(0)

traceback (most recent call last):

file "", line 1, in keyerror: 0

# copy 淺複製

>>> s3 = s2.copy()

>>> s3

# clear 清空

>>> s3.clear()

>>> s3

set()

# set pop(),隨機刪除乙個元素,並返回

>>> s = set([1, 2, 3])

>>> s.pop()

1 >>> s

交集

>>> s2 = set([1, 2, 3, 4, 5, 10, 15, 22])

>>> s1 = set([1, 2, 3, 4, 5, 6, 7, 8])

>>> s1 & s2

>>> s1.intersection(s2)

求集合的不同

>>> s1.difference(s2)

>>> s2.difference(s1)

是不是子集

>>> s3 = set([6, 7, 8])

>>> s2.issubset(s2)

true

>>> s2.issubset(s1)

false

>>> s1.issuperset(s3)

true

python入門基礎 集合

不允許有重複元素,如果新增重複元素,則會自動過濾,可以進行交集 並集的運算。s1 set 空集合 不能是 這是字典 s2 print s1 print set 30,40,50 通過列表建立 print set 11,22,33 通過元組建立 print set hello 通過字串建立 print...

Python基礎入門 集合(set)

1.是否為序列型別 即該資料的元素是否能夠索引.其中序列型別的包括str list tuple 2.是否可以原處修改 即該資料的元素是否能夠原處修改 特別提醒看官,這裡說的是原處修改問題,有的資料裡面說str不能修改,也是指原處修改問題.為了避免誤解,特別強調了原處 能夠原處修改的list dict...

Python基礎入門(四)

函式即變數高階函式 巢狀函式 裝飾器 裝飾器 定義 本質就是函式,裝飾其他函式 就是為其他函式新增附加功能 1.不能修改被裝飾函式的源 2.不能修改被裝飾函式的呼叫方式 高階函式 巢狀函式 把乙個函式名當做實參傳給另外乙個函式 返回值中包含函式名 不修改函式的呼叫方式 沒有修改被裝飾函式的源 但是改...