欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python入門實踐13 | 集合(Set)

系統 2023 0

Python入門實踐13 ——集合(Set)


集合(Set)
一、目標

1、掌握集合是存放一組沒有順序、不可可重復的、可以改變的數據的容器。
2、掌握集合的操作。

二、要點

1、 集合(set)

可以存放一組沒有順序、不可可重復的、可以改變的數據。
所以一般情況下集合常用的兩個場景是:去重(如:列表去重);關系測試(如:取交集、取并集、取差集等)。

  • 集合可以通過可迭代對象(字符串、元組、列表等)進行創建;
  • 集合中的元素不可重復;
  • 集合中的元素無序排列。

2、創建集合
集合可以使用大括號 { } 或者set(iterable)方法創建,參數iterable為可迭代對象。
注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
如:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'};

s1 = set('好好學習天天想上') # 將字符串分解為單個字符,作為集合的元素創建集合

s2 = set(('好好', '學習', '天天', '想上')) # 將元組分解為單個元素,作為集合元素創建集合

s3 = set(['好好', '學習', '天天', '想上']) # 將列表分解為單個元素,作為集合元素創建集合
3、集合操作
1)、添加元素

(1)、添加單個元素s.add(element)
語法格式如下:
s.add(element);
參數element為集合允許添加的元素(例如數字、字符串、元組等)。
如:
s1.add('4')

(2)、添加多個元素s.update(iterable)
語法格式如下:
s.update(iterable)
參數iterable為可迭代對象,可以是列表,元組,字典等。

如:
s2.update(['4','5','6']) ;

2)、移除元素:
(1)、s.remove( element)
將元素 element 從集合 s 中移除,如果元素不存在,則會發生錯誤 。
(2)、s.discard( element ):
將元素 element 從集合 s 中移除,如果元素不存在,不會發生錯誤,但什么也不做 。
(3)、s.pop():
從集合中隨機刪除一個元素,并返回刪除的元素 。

3)、計算集合中元素的個數
len(s):計算集合 s 元素個數。
4)、清空集合
s.clear():清空集合s中的元素
5)、移除集合
del s:移除集合s
6)、判斷元素是否在集合中
x in s :判斷元素 x是否在集合 s中存在,存在返回 True,不存在返回 False。
7)、交集/并集/補集/差集


交集/并集/補集/差集
操作 函數 說明
交集 & s1.intersection(s2)不更新s1 s1.intersection_update(s2)更新s1 獲取兩個集合中共有元素
并集 | s1.union(s2) 獲取兩個集合去除重復元素后的全部元素
補集 - s1.difference(s2) 不更新s1 s1.difference_update(s2) 更新s1 獲取當前集合去除與另一集合交集元素后的全部元素。
差集 ^ s1.ymmetric_difference(s2) 不更新s1 s1.symmetric_difference_update(s2) 更新s1 獲取兩個集合去除交集元素后的全部元素。

8)、成員關系
Python中提供了一些方法,

  • 判斷一個集合中是否包含某一元素;
  • 判斷一個集合是否另一個集合的子集或超集。
  • 判斷一個集合與另一個集合是否沒有交集。
子集或超集
操作 描述
In 來判斷操作符前方的值是否被后方的序列包含(成員關系)
not in 判斷操作符前方的值是否未被后方的序列包含(非成員關系)。
isdisjoint(set) 可以判斷集合是否與指定集合不存在交集,參數set為集合;如果成立返回結果為True,否則為False。
issubset(set) 可以判斷集合是否指定集合的子集,參數set為集合;如果成立返回結果為True,否則為False。
issuperset(set) 可以判斷集合是否指定集合的超集,參數set為集合;如果成立返回結果為True,否則為False。

9)、復制集合

使用copy()方法能夠對集合進行復制。

4、集合內置方法

方法 描述
add() 為集合添加元素
clear() 移除集合中的所有元素
copy() 拷貝一個集合
difference() 返回多個集合的差集
difference_update() 移除集合中的元素,該元素在指定的集合也存在。
discard() 刪除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
isdisjoint() 判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
issubset() 判斷指定集合是否為該方法參數集合的子集。
issuperset() 判斷該方法的參數集合是否為指定集合的子集
pop() 隨機移除元素
remove() 移除指定元素
symmetric_difference() 返回兩個集合中不重復的元素集合。
symmetric_difference_update() 移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中。
union() 返回兩個集合的并集
update() 給集合添加元素
集合(Set)——思維導圖
三、步驟

1、新建新建ex13.py文件。
2、錄入實例中代碼。
3、運行。

四、實例(Python 3.0+)
          
            #!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'jungle'
__mtime__ = '2019-08-28'
"""
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket);
s1 = set('好好學習天天想上') ; # 將字符串分解為單個字符,作為集合的元素創建集合
s2 = set(('好好', '學習', '天天', '想上'));  # 將元組分解為單個元素,作為集合元素創建集合
s3 = set(['好好', '學習', '天天', '想上']) ; # 將列表分解為單個元素,作為集合元素創建集合

print (s1);  # 顯示輸出結果為:{'好', '習', '上', '天', '想', '學'}
print (s2) ; # 顯示輸出結果為:{'好好', '想上', '學習', '天天'}
print (s3);  # 顯示輸出結果為:{'好好', '想上', '學習', '天天'}


# 添加單個元素
s1.add('4');

# 添加多個元素
s2.update(['4','5','6']);  # 添加列表到集合,列表元素會被分解為單個元素后添加到集合
s3.update('de') ; # 添加字符串到集合,字符串會被分解為單個元素后添加到集合

# 顯示輸出
print (s1) ;
print (s2) ;
print (s3) ;

# 創建集合
s1 = set(['Python','Java','C','C++','C#'])
s2 = set(['Python','Java','C','C++','C#'])

# 刪除元素
s1.remove('C++');
s2.discard('C++');
print (s1) ;
print (s2) ;
print (s1.pop()) # 取出集合元素

# 創建集合
s1 = set('Python')
s2 = set('PyCharm')

# 交集操作:獲取兩個集合中共有元素。
print (s1 & s2)  # 顯示輸出結果為:{'y', 'P', 'h'}
print (s1.intersection(s2))  # 顯示輸出結果為:{'y', 'P', 'h'}

# 并集操作:獲取兩個集合去除重復元素后的全部元素。
print (s1 | s2)  # 顯示輸出結果為:{'y', 'a', 'C', 'o', 'P', 'n', 't', 'm', 'r', 'h'}
print (s1.union(s2))  # 顯示輸出結果為:{'y', 'a', 'C', 'o', 'P', 'n', 't', 'm', 'r', 'h'}

# 補集操作:獲取當前集合去除與另一集合交集元素后的全部元素。
print (s1 - s2)  # 顯示輸出結果為:{'o', 't', 'n'}
print (s1.difference(s2))  # 顯示輸出結果為:{'o', 't', 'n'}
print (s2 - s1)  # 顯示輸出結果為:{'m', 'a', 'r', 'C'}
print (s2.difference(s1))  # 顯示輸出結果為:{'m', 'a', 'r', 'C'}

# 差集操作:獲取兩個集合去除交集元素后的全部元素。
print (s1 ^ s2)  # 顯示輸出結果為:{'o', 't', 'm', 'a', 'r', 'n', 'C'}
print (s1.symmetric_difference(s2))  # 顯示輸出結果為:{'o', 't', 'm', 'a', 'r', 'n', 'C'}

s1 = set('好好學習')
s2 = set('天天想上')
s3 = set('好好學習天天想上')

print ('好' in s1) # 顯示輸出結果為:True
print ('好' not in s2) # 顯示輸出結果為:True
print (s1.isdisjoint(s2))  # 顯示輸出結果為:True
print (s1.issubset(s3))  # 顯示輸出結果為:True
print (s3.issuperset(s1))  # 顯示輸出結果為:True

a = set('小樓一夜聽春語')  # 創建集合存入變量a
b = a  # 創建變量b引用變量a的集合
c = a.copy()  # 創建變量c復制變量a的值
print (a)  # 顯示輸出結果為:{'春', '夜', '樓', '聽', '語', '小', '一'}
print (b)  # 顯示輸出結果為:{'春', '夜', '樓', '聽', '語', '小', '一'}
print (c)  # 顯示輸出結果為:{'春', '夜', '樓', '聽', '語', '小', '一'}

print(dir(set));

          
        
五、運行輸出:
          
            {'banana', 'pear', 'orange', 'apple'}
{'學', '上', '想', '天', '好', '習'}
{'天天', '想上', '學習', '好好'}
{'天天', '想上', '學習', '好好'}
{'學', '上', '想', '天', '好', '習', '4'}
{'天天', '想上', '學習', '5', '6', '4', '好好'}
{'天天', '想上', 'e', '學習', 'd', '好好'}
{'C', 'Java', 'Python', 'C#'}
{'C', 'Java', 'Python', 'C#'}
C
{'y', 'h', 'P'}
{'y', 'h', 'P'}
{'o', 'r', 'h', 'm', 'C', 'n', 't', 'P', 'a', 'y'}
{'o', 'r', 'h', 'm', 'C', 'n', 't', 'P', 'a', 'y'}
{'t', 'o', 'n'}
{'t', 'o', 'n'}
{'m', 'C', 'a', 'r'}
{'m', 'C', 'a', 'r'}
{'o', 'r', 'm', 'C', 'n', 't', 'a'}
{'o', 'r', 'm', 'C', 'n', 't', 'a'}
True
True
True
True
True
{'樓', '一', '小', '夜', '聽', '語', '春'}
{'樓', '一', '小', '夜', '聽', '語', '春'}
{'聽', '春', '樓', '一', '語', '小', '夜'}
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']


          
        
注:

1、撰寫內容來源于個人收集的文獻,屬學術探究范疇。
2、版權屬于時進軍個人,轉載需注明。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩女性性生生活视频 | www.91在线观看 | 窝窝午夜精品一区二区 | 白色白色视频免费观看 | 波多野结衣一区二区三区 | 暴力强行进如hdxxx | 一区二区三区亚洲 | 偷拍自拍视频在线观看 | 免费看一区二区三区 | 97色伦色在线综合视频 | A片A三女人久久7777 | 午夜性刺激小说 | 狠狠躁夜夜躁人人爽天天高潮 | 中文字幕日韩欧美 | 亚洲综合久久久久久888 | 亚洲成人中文字幕 | 中文字幕在线精品 | 亚洲欧洲精品视频在线观看 | 日韩精品在线一区 | 亚洲四播房 | 日韩午夜在线视频 | 精品久久久久久国产 | 日本高清免费在线视频 | 狠狠躁日日躁夜夜躁A片小说按摩 | 久久免费看 | 亚洲人成在线播放 | 久色视频在线观看 | 成人午夜大片 | 97青青青国产在线播放 | 精品国产一区二区三区久久久蜜月 | 日韩在线不卡视频 | www.亚洲黄色| 欧美日韩免费观看视频 | 三级av免费 | 欧美黄色一级片视频 | 亚洲第一区视频在线观看 | 国产91在线 | 欧美 | 久草久草视频 | 午夜小视频免费 | 成人黄色毛片 | 男女超猛烈啪啦啦的免费视频 |