天天看點

python集合

python集合

特點:去重、關系測試;無序的 ;

功能:增、删、查

應用範圍:

    1. python班的同學和運維班的同學   其中有同學兩個班都報了, 現在要把兩個班的同學合并,不能有重複。(求兩個清單的并集)

    2. python班的同學和運維班的同學   其中有同學兩個班都報了,現在要把兩個班都報的同學取出來。(取兩個清單的交集)

<code>#格式:</code>

<code>set_1 </code><code>=</code> <code>{</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>}</code>

<code>#例如去重:</code>

<code>list_1 </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>,</code><code>5</code><code>,</code><code>6</code><code>,</code><code>1</code><code>]</code>

<code>list_1 </code><code>=</code> <code>set</code><code>(list_1)            </code><code>#清單轉集合</code>

<code>print</code><code>(list_1,</code><code>type</code><code>(list_1))      </code><code>#列印出來的時候已經沒有重複的。</code>

<code>輸出:{</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>, </code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>} &lt;</code><code>class</code> <code>'set'</code><code>&gt;</code>

集合的所有關系測試

求交集(兩個清單都有的)

<code>list_1 </code><code>=</code> <code>set</code><code>(list_1)</code>

<code>list_2 </code><code>=</code> <code>set</code><code>([</code><code>7</code><code>,</code><code>8</code><code>,</code><code>9</code><code>,</code><code>0</code><code>,</code><code>1</code><code>,</code><code>2</code><code>])</code>

<code>print</code><code>(list_1.intersection(list_2))</code>

求并集(兩個清單合并)

<code>print</code><code>(list_1.union(list_2))</code>

求差集(A有,B相對于A沒有的)

<code>print</code><code>(list_1.difference(list_2))    </code><code>#list_1 裡邊有的,list_2相對于list_1裡邊沒有的;</code>

<code>print</code><code>(list_2.difference(list_1))    </code><code>#list_2 裡邊有的,list_1相對于list_2裡邊沒有的;</code>

取子集(兩個清單有相同的)

<code>list_3 </code><code>=</code> <code>set</code><code>([</code><code>1</code><code>,</code><code>2</code><code>])</code>

<code>print</code><code>(list_3.issubset(list_1))</code>

求父集(兩個清單有相同的)

<code>print</code><code>(list_1.issuperset(list_3))</code>

對稱差集(把兩個清單裡邊去掉重複的,其他的都取出來)

<code>print</code><code>(list_1.symmetric_difference(list_2))</code>

判斷兩個清單有沒有交集

<code>list_4 </code><code>=</code> <code>set</code><code>([</code><code>3</code><code>,</code><code>4</code><code>])</code>

<code>print</code><code>(list_3.isdisjoint(list_4))</code>

運算符求所有關系測試

#交集

print(list_1 &amp; list_2)

#并集

print(list_1 | list_2)

#差集

print(list_1 - list_2)

#對稱差集

print(list_1 ^ list_2 )

集合基本操作

添加

<code>list_1.add(</code><code>99</code><code>)</code>

<code>print</code><code>(list_1)</code>

添加多項

<code>list_1.update([</code><code>11</code><code>,</code><code>22</code><code>,</code><code>33</code><code>])</code>

删除(一次隻能删除一個)删除的元素不存在 會報錯;正常删除一個元素傳回一個None 。

<code>list_1.remove(</code><code>1</code><code>)</code>

任意删除一個元素,并且傳回删除的元素;如果沒有傳回None 。

<code>print</code><code>(list_1.pop())</code>

指定删除一個元素,如果沒有元素也不報錯,始終傳回值為None;

<code>print</code><code>(list_1.discard(</code><code>1</code><code>))</code>

檢視集合長度

<code>print</code><code>(</code><code>len</code><code>(list_1))</code>

x在不在集合裡

<code>print</code><code>(</code><code>2</code> <code>in</code> <code>list_1)</code>

x是不是不在集合裡

<code>print</code><code>(</code><code>1</code> <code>not</code> <code>in</code> <code>list_1)</code>

本文轉自 506554897 51CTO部落格,原文連結:http://blog.51cto.com/506554897/1944938