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>} <</code><code>class</code> <code>'set'</code><code>></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 & 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>
<code></code>
本文轉自506554897 51CTO部落格,原文連結:http://blog.51cto.com/506554897/1944938,如需轉載請自行聯系原作者