2 -10 集合set

Posted mobai-c

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2 -10 集合set相关的知识,希望对你有一定的参考价值。

1 如何找出同时买iphone和iphone8的人?

 技术分享图片

 

iphone7 = [alex,rain,jack,tom]
iphone8 = [alex,shanshan,jack,tom]
both_list = []
for name in iphone7:
    if name in iphone8:
        both_list.append(name)
print(both_list)
#运行结果
[alex, jack, tom]

2 集合 set

集合中的元素有三个特征:

1.确定性(元素必须可hash)
2.互异性(去重)
3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。

注意:集合存在的意义就在于去重和关系运算

技术分享图片  技术分享图片

 

3 集合方法

 

# 查看所有方法
>>> dir(s)
[__and__, __class__, __contains__, __delattr__, __dir__, __doc__, __eq__, __format__, __ge__, __getatt
ribute__, __gt__, __hash__, __iand__, __init__, __ior__, __isub__, __iter__, __ixor__, __le__, __len_
_, __lt__, __ne__, __new__, __or__, __rand__, __reduce__, __reduce_ex__, __repr__, __ror__, __rsub__, __rxor__, __setattr__, __sizeof__, __str__, __sub__, __subclasshook__, __xor__, add, clear, copy, difference, difference_update, discard, intersection, intersection_update, isdisjoint, issubset, issuperset
, pop, remove, symmetric_difference, symmetric_difference_update, union, update]
>>>

# 方法的帮助
>>> help(s.clear)

Help on built-in function clear:

clear(...) method of builtins.set instance
    Remove all elements from this set.

 

(1)创建

技术分享图片

 

(2)添加

 

  • 单个元素的增加 : add(),add的作用类似列表中的append
  • 对序列的增加 : update(),而update类似extend方法,update方法可以支持同时传入多个参数:

技术分享图片

技术分享图片

 

(3)删除

技术分享图片

技术分享图片

 

4 集合测试

>>> iphone7
{rain, jack, alex, tom}
>>> iphone8
{shanshan, jack, alex, tom}

# 交集
>>> iphone7.intersection(iphone8)
{jack, alex, tom}
>>> iphone7 & iphone8
{jack, alex, tom}
>>>

#差集
>>> iphone7.difference(iphone8)
{rain}
>>> iphone7 - iphone8
{rain}
>>>
>>> iphone8.difference(iphone7)
{shanshan}
>>> iphone8 - iphone7
{shanshan}

#并集
>>> iphone7.union(iphone8)
{rain, tom, shanshan, jack, alex}
>>> iphone7 | iphone8
{rain, tom, shanshan, jack, alex}
>>>

# 对称差集
# 只买了iphone7 或者iphone8 的人
>>> iphone7.symmetric_difference(iphone8)
{shanshan, rain}
>>> iphone7 ^ iphone8
{shanshan, rain}

 

def difference_update(self, *args, **kwargs): # real signature unknown
        """ Remove all elements of another set from this set. """
        pass   

def intersection_update(self, *args, **kwargs): # real signature unknown
        """ Update a set with the intersection of itself and another. """
        pass

 

5 包含关系

in,not in:判断某元素是否在集合内
==,!=:判断两个集合是否相等

两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:

      • set.isdisjoint(s):判断两个集合是不是不相交
      • set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
      • set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b

技术分享图片

 

以上是关于2 -10 集合set的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

laravel特殊功能代码片段集合

peptide map DDA和IMS有啥区别

Python_Set集合

pycharm添加Odoo代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段