在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 二、set
二、Enum 的源碼
前言
一、Python 模塊簡介
一、List(列表)
五、匿名函數(shù)
三、什么是元類
二、循環(huán)語句
二、模塊的使用
三、第一個(gè) Python 程序
線程與進(jìn)程
Python
三、條件語句和循環(huán)語句綜合實(shí)例
四、對象的描述器
三、類的屬性
一、迭代
五、迭代器和生成器綜合例子
六、運(yùn)算符相關(guān)的魔術(shù)方法
一、枚舉類的使用
前言
一、簡明概述
二、Python 的基本數(shù)據(jù)類型
多線程編程
五、作用域
四、包
四、枚舉的比較
四、Python 中的變量
六、類的多態(tài)
一、Python 中類也是對象
一、Python 的 Magic Method
前言
四、生成器
一、面向?qū)ο蟮母拍?/span>
五、類的繼承
二、類
二、使用 <code>type()</code> 動(dòng)態(tài)創(chuàng)建類
進(jìn)程
二、set
三、主模塊和非主模塊
一、字典(Dictionary)
前言
前言
前言
前言
四、集成開發(fā)環(huán)境(IDE): PyCharm
前言
四、函數(shù)的參數(shù)
三、lsit 生成式(列表生成式)
四、自定義元類
四、類的方法
二、函數(shù)傳值問題
二、注釋
一、條件語句
一、Python 語法的簡要說明
三、函數(shù)返回值
三、基本數(shù)據(jù)類型轉(zhuǎn)換
三、屬性的訪問控制
二、Python 的安裝
前言
三、命名規(guī)范
一、Python 自定義函數(shù)的基本步驟
三、自定義類型的枚舉
五、自定義容器(Container)
二、Python 迭代器
前言
二、tuple(元組)
一、Python 簡介
前言
前言
前言
二、構(gòu)造(<code>__new__</code>)和初始化(<code>__init__</code>)
前言

二、set

python 的 set 和其他語言類似, 是一個(gè)無序不重復(fù)元素集, 基本功能包括關(guān)系測試和消除重復(fù)元素。set 和 dict 類似,但是 set 不存儲(chǔ) value 值的。

1、set 的創(chuàng)建

創(chuàng)建一個(gè) set,需要提供一個(gè) list 作為輸入集合

set1=set([123,456,789])
print(set1)

輸出結(jié)果:

{456, 123, 789}

傳入的參數(shù) [123,456,789] 是一個(gè) list,而顯示的 {456, 123, 789} 只是告訴你這個(gè) set 內(nèi)部有 456, 123, 789 這 3 個(gè)元素,顯示的順序跟你參數(shù)中的 list 里的元素的順序是不一致的,這也說明了 set 是無序的。

還有一點(diǎn),我們觀察到輸出的結(jié)果是在大括號(hào)中的,經(jīng)過之前的學(xué)習(xí),可以知道,tuple (元組) 使用小括號(hào),list (列表) 使用方括號(hào), dict (字典) 使用的是大括號(hào),dict 也是無序的,只不過 dict 保存的是 key-value 鍵值對值,而 set 可以理解為只保存 key 值。

回憶一下,在 dict (字典) 中創(chuàng)建時(shí),有重復(fù)的 key ,會(huì)被后面的 key-value 值覆蓋的,而 重復(fù)元素在 set 中自動(dòng)被過濾的。

set1=set([123,456,789,123,123])
print(set1)

輸出的結(jié)果:

{456, 123, 789}

2、set 添加元素

通過 add(key) 方法可以添加元素到 set 中,可以重復(fù)添加,但不會(huì)有效果

set1=set([123,456,789])
print(set1)
set1.add(100)
print(set1)
set1.add(100)
print(set1)

輸出結(jié)果:

{456, 123, 789}
{456, 123, 100, 789}
{456, 123, 100, 789}

3、set 刪除元素

通過 remove(key) 方法可以刪除 set 中的元素

set1=set([123,456,789])
print(set1)
set1.remove(456)
print(set1)

輸出的結(jié)果:

{456, 123, 789}
{123, 789}

4、set 的運(yùn)用

因?yàn)?set 是一個(gè)無序不重復(fù)元素集,因此,兩個(gè) set 可以做數(shù)學(xué)意義上的 union(并集), intersection(交集), difference(差集) 等操作。

set集合運(yùn)算

例子:

set1=set('hello')
set2=set(['p','y','y','h','o','n'])
print(set1)
print(set2)

# 交集 (求兩個(gè) set 集合中相同的元素)
set3=set1 & set2
print('\n交集 set3:')
print(set3)
# 并集 (合并兩個(gè) set 集合的元素并去除重復(fù)的值)
set4=set1 | set2
print('\n并集 set4:')
print(set4)
# 差集
set5=set1 - set2
set6=set2 - set1
print('\n差集 set5:')
print(set5)
print('\n差集 set6:')
print( set6)

# 去除海量列表里重復(fù)元素,用 hash 來解決也行,只不過感覺在性能上不是很高,用 set 解決還是很不錯(cuò)的
list1 = [111,222,333,444,111,222,333,444,555,666]  
set7=set(list1)
print('\n去除列表里重復(fù)元素 set7:')
print(set7)

運(yùn)行的結(jié)果:

{'h', 'l', 'e', 'o'}
{'h', 'n', 'o', 'y', 'p'}

交集 set3:
{'h', 'o'}

并集 set4:
{'h', 'p', 'n', 'e', 'o', 'y', 'l'}

差集 set5:
{'l', 'e'}

差集 set6:
{'p', 'y', 'n'}

去除列表里重復(fù)元素 set7:
{555, 333, 111, 666, 444, 222}