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>
本文转自 506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/1944938