1.はじめに
セット (セット) は、反復しない要素の順序付けられていないシーケンスであり、中括弧 { } または set() 関数 を使用して作成できます。注:空のセットを作成するには、{ } の代わりに set() を使用する必要があります。 { } は空の辞書を作成するために使用されるためです。
1.セットコレクションを作成する
セット コレクションを作成します。
parame = {
value01,value02,...}
または:
value = [valu1,value2,value3] #value 是可迭代对象, 可以是列表list,元组(tuple),或者字符串string等可迭代数据结构对象
set(value)
例:
>>> basket = {
'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{
'orange', 'banana', 'pear', 'apple'}
2. 要素がコレクション内にあるかどうかを判断する
>>> 'orange' in basket # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
3. 理解を深める
リスト内包表記と同様に、セットもセット内包表記をサポートします。
>>> a = {
x for x in 'abracadabra' if x not in 'abc'}
>>> a
{
'r', 'd'}
2. コレクションの基本操作
1. add() は単一の要素を追加します
構文形式は次のとおりです。
s.add( x )
要素 x をセット s に追加するか、要素が既に存在する場合は何もしません。
注: add() メソッドを使用して追加される要素は、数値、文字列、タプル、またはブール値 (True および False) のみであり、リスト、辞書、およびセットなどの変数データは追加できません。
例:
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{
'Taobao', 'Facebook', 'Google', 'Runoob'}
2. update() は、リスト、タプル、辞書、およびその他の全体的なデータを追加します
update() は単一の要素を追加することもでき、パラメーターはリスト、タプル、辞書などにすることができます。構文形式は次のとおりです。
s.update( x )
複数の x をコンマで区切って指定できます。
例:
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({
1,3})
>>> print(thisset)
{
1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{
1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
>>>
3. remove ( ) は要素を削除します: 要素が存在しないため、エラーが報告されます
構文形式は次のとおりです。
s.remove( x )
セット s から要素 x を削除するか、要素が存在しない場合はエラーをスローします。
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{
'Google', 'Runoob'}
>>> thisset.remove("Facebook") # 不存在会发生错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>
4. discard() は要素を削除します: 要素は存在しません。エラーは報告されません。
コレクション内の要素を削除する別のメソッドもあり、要素が存在しなくてもエラーは発生しません。形式は次のとおりです。
s.discard( x )
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") # 不存在不会发生错误
>>> print(thisset)
{
'Taobao', 'Google', 'Runoob'}
5. pop() はコレクションから要素をランダムに削除します
コレクション内の要素をランダムに削除するように設定することもできます。構文形式は次のとおりです。
s.pop()
例:
thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
x = thisset.pop()
print(x)
#Runoob
複数回実行すると、テスト結果が異なります。
セット コレクションの pop メソッドは、コレクションを順不同に配置し、順不同コレクションの左側にある最初の要素を削除します。
6. len() はコレクション要素の数を計算します
構文形式は次のとおりです。
len(s)
たとえば、セット s の要素数を計算します。
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> len(thisset)
3
7. コレクションを空にする clear()
セット s をクリアします。構文は次のとおりです。
s.clear()
例:
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.clear()
>>> print(thisset)
set()
8. in は、要素がコレクションに存在するかどうかを判断します
構文形式は次のとおりです。
x in s
要素 x が集合 s にあるかどうかを判断し、存在する場合は True を返し、存在しない場合は False を返します。
例:
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> "Runoob" in thisset
True
>>> "Facebook" in thisset
False
>>>
9. 操作とリスト リストの結合
要素はセットに一度しか格納できないため、セット (セット) を使用して他のセットから重複を除外できます。また、リストをセット (セット) に直接変換してから元に戻すことで、重複を削除できます。リストの繰り返し要素:
L = [1,2,1,3,2,4,5]
>>> set(L)
set([1, 2, 3, 4, 5])
>>> L = list(set(L))
>>> L
[1, 2, 3, 4, 5]
3. 集合 set は、交差、和、および差演算に使用されます
集合に対する最も一般的な操作は、交差、和、差分、および対称差分操作です. それぞれの操作の意味を紹介しましょう.
上の図には、set1={1,2,3} と set2={3,4,5} という 2 つのセットがあり、同じ要素と異なる要素の両方を持っています。これら 2 つのセットを例として、さまざまな操作の結果を以下の表 1 に示します。
例:
>>> # 下面展示两个集合间的运算.
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{
'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{
'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{
'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{
'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素
{
'r', 'd', 'b', 'm', 'z', 'l'}