集合(set)是乙個無序的不重複的元素序列。
可以使用大括號{}或者set()函式建立集合。
注意:建立乙個空集合必須使用set()而不是{},與空字典有區別。
包含的操作如下表:
方法描述
add (x)
為集合新增元素
update(x)
為集合新增元素,x可以為列表,元組,字典、字串(會分隔字串進行新增,如:「張三」,會拆分成「張」、「三」兩個元素進行新增。很高階)
clear()
移除集合中的所有元素
discard(x)
刪除集合中指定的元素,元素不存在,不會報錯
remove(x)
刪除集合中指定的元素,元素不存在,會報錯keyerror
pop()
隨機刪除乙個元素
copy()
拷貝乙個集合
difference()
返回多個集合的差集
difference_update()
移除集合中的元素,該元素在指定的集合也存在
union()
返回兩個集合並集
intersection()
返回兩個集合的交集,生成新的集合
intersection_update()
兩個集合的交集,集合的交並是在原集合的基礎上進行的,沒有生成新的集合,無返回值
isdisjoint()
判斷兩個集合是否包含相同的元素,如果沒有返回 true,否則返回 false。* -切記注意返回值- *
issubset()
判斷指定集合是否為該方法引數集合的子集。
issuperset()
判斷該方法的引數集合是否為指定集合的子集
symmetric_difference()
返回兩個集合中不重複的元素集合。
symmetric_difference_update()
移除當前集合中在另外乙個指定集合相同的元素,並將另外乙個指定集合中不同的元素插入到當前集合中。
由於案例太多了,就不一一介紹,直接看完整**吧,所有方法的呼叫都包含了,可以直接拷貝執行。
# 宣告乙個集合
myset =
set(
("張三"
,"李四"
,"王五"))
# 方式1
myset2 =
# 方式2
print
("myset集合原始資料:"
, myset)
print
("myset2集合原始資料:"
, myset2)
# 判斷元素是否存在
i***ist =
"張三1"
in myset
print
("判斷元素是否存在:"
, i***ist)
# 新增元素
myset.add(
"老大"
)print
("新增乙個元素:"
, myset)
# 新增列表
myset.update(
)print
("新增乙個列表:"
, myset)
# 新增字串
myset.update(
"老三"
)print
("新增乙個字串:"
, myset)
print
("1、最新的myset集合:"
, myset)
print
("1、最新的myset2集合:"
, myset2)
# 兩個集合交集
print
("兩個集合交集:"
, myset.intersection(myset2)
)# 注意無返回的交集,直接更改myset集合的值,【這個操作請最後執行,不然後面的操作看不到結果】
# myset.intersection_update(myset2)
# print("兩個集合交集:",myset)
# 返回兩個集合中不重複的元素
print
("myset與myset2不重複的元素:"
, myset.symmetric_difference(myset2)
)# 移除當前集合中在另外乙個指定集合相同的元素,並將另外乙個指定集合中不同的元素插入到當前集合中。
# 注意沒有返回值,直接在myset集合上進行更新操作【這個操作請最後執行,不然後面的操作看不到結果】
# myset.symmetric_difference_update(myset2)
# print("myset與myset2不重複的元素2:",myset)
print
("2、最新的myset集合:"
, myset)
print
("2、最新的myset2集合:"
, myset2)
# 判斷兩個集合是否包含相同的元素,如果沒有返回 true,否則返回 false
print
("兩個集合是否包含相同的元素:"
, myset.isdisjoint(myset2)
)# 判斷指定集合是否為該方法引數集合的子集
print
("myset是否為myset2的子集:"
, myset.issubset(myset2)
)# 判斷該方法的引數集合是否為指定集合的子集
print
("myset2是否為myset的子集:"
, myset.issuperset(myset2)
)# 返回兩個集合的差集
print
("myset與myset2的差集:"
, myset.difference(myset2)
)# 直接在原來的集合中移除元素,沒有返回值,多的移除少的
myset.difference_update(myset2)
print
("myset移除myset2的差集:"
, myset)
print
("3、最新的myset集合:"
, myset)
print
("3、最新的myset2集合:"
, myset2)
# 兩個集合取並集
print
("兩個集合並集:"
, myset.union(myset2)
)# 隨機刪除乙個元素
myset.pop(
)print
("隨機刪除乙個元素:"
, myset)
# 清空
myset.clear(
)print
("清空集合:"
, myset)
# 刪除不存在的元素不報錯
myset.discard(
"戰三"
)# 刪除不存在的元素報錯keyerror
myset.remove(
"戰三"
)
輸出:
myset集合原始資料:
myset2集合原始資料:
判斷元素是否存在: false
新增乙個元素:
新增乙個列表:
新增乙個字串:
1、最新的myset集合:
1、最新的myset2集合:
兩個集合交集:
myset與myset2不重複的元素:
2、最新的myset集合:
2、最新的myset2集合:
兩個集合是否包含相同的元素:
false
myset是否為myset2的子集:
false
myset2是否為myset的子集:
true
myset與myset2的差集:
myset移除myset2的差集:
3、最新的myset集合:
3、最新的myset2集合:
兩個集合並集:
隨機刪除乙個元素:
清空集合: set()
traceback (most recent call last)
: file "e:/pythonworkplace/venv/testset.py"
, line 80,in
myset.remove(
"戰三"
)keyerror:
'戰三'
myset.isdisjoint(myset2) 這個方法一定要注意:
返回值為true,說明myset與myset2集合沒有相同的元素;
返回值為false,說明myset與myset2集合有至少乙個以上相同的元素存在。
取交集、差集、不重複的元素集合呼叫帶有_update()字尾的方法時,往往都是沒有返回值的,而且不會新建立集合,直接在原集合中合併元素。
myset.update(x)函式呼叫的時候要注意,當x為字串的時候,會將字串分隔成乙個乙個的字元,進行元素新增,如:「張三」,會拆分成「張」、「三」兩個元素進行新增。很高階
python基礎知識 集合
集合 無序,不重複 1.建立集合 se1 se2 set 建立空集合 se3 set 11,22,33,44,55,66 將其他可迭代型別轉為集合 2.add 增加元素,若集合中有需要增加的元素則不重複增加,若沒有則增加 set.add 123 3.clear 清除元素 4.copy 淺拷貝 5.a...
python基礎知識 集合
集合 集合與列表 元組類似,可以儲存多個資料,但是這些資料是不重複的 具有自動去重功能 集合的格式 變數名 變數 set 可迭代的內容 可迭代內容 list,str,元組,字典 一 建立集合 1 set1 print set1 注意true 會轉換成數字 1 進行比較 false 會轉化成0 進行比...
python基礎知識 集合
集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合 注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。示例 parm1 parm2 set parm3 set dafdjajfd 會將重複的資料去重 parm4 set cctv btv pri...