python集合

集合定义

集合是无序不重复的数据合集,因此集合中的元素是不支持索引取值的。

集合创建

1. myset = {1, 2, 3, 4}

2. myset = set([1, 2, 3, 4])

 

集合变化

1. 增加

myset.add(5),是把要传入的元素做为一个整个添加到集合中,传入的参数是可哈希的,如果传入字符串,则引号内作为整体传入。

myset.update([5, 6]),是把要传入的元素拆分,做为个体传入到集合中;不可迭代的类型传入则会报错。

2. 删除

myset.remove(5),有就删除,没有就报错。

myset.clear(),清空集合里面的元素。

myset.pop(),删除某个值返回。

myset.discard(),有就删除,没有也不会报错。

集合操作

set1={1, 2, 3, 4, 5}

set2={4, 5, 6, 7, 8, 9}

交集

set1.intersection(set2)   # 两个集合里面都有的值

>>{4, 5}

差集

set1.difference(set2)  # 交集部分set1的补集

>>{1, 2, 3}

set.symmetric_difference(set2)  # 交集的补集

>>{1, 2, 3, 6, 7, 8, 9}

并集

set1.union(set2)   # 把两个集合别合并起来,然后去重

>>{1, 2, 3, 4, 5, 6, 7, 8, 9}

子集

set1.issubset(set2)  # 判断set1是否为set2的子集

>>False

父集

set1.issupperset(set2)   # set1是否是set2的父集

>>False

有无交集

set1.isdisjiont(set2)  # 判断set1和set2是否完全没有任何交集

>>False

从属关系

x in set1

x not in set1

集合浅拷贝

set3 = set1.copy()

深拷贝就是两个独立的内存,彼此互不影响;浅拷贝只拷贝一层,浅拷贝中,如果某个元素是列表,那么整个列表的地址,被变量指向,而列表的本身,又指向列表其中的元素。

 

posted on 2018-03-20 08:37  Artisan正传  阅读(81)  评论(0)    收藏  举报