首页 > 代码库 > set集合
set集合
不允许重复的元素出现
无序排列
可哈希
set的底层代码是用字典来实现的?
相当于一个特殊的list
In [5]: s1 = set() In [6]: type(s1) Out[6]: set In [7]: s1.add("inter") In [8]: s1.add("inter") In [9]: s1 #添加了2个inter,但是只有一个添加进了集合。 Out[9]: {‘inter‘} In [10]: s1.add("ac") In [11]: s1 Out[11]: {‘ac‘, ‘inter‘} In [19]: l1 = [1,2,3,4,5,2] In [20]: s2 = set(l1) #接受一个列表,转换为集合。 In [21]: s2 Out[21]: {1, 2, 3, 4, 5} In [45]: s3 Out[45]: {2, ‘ac‘, ‘china‘, ‘inter‘} #输出一个集合,内容是s3里面的,不同于s2的元素。s3本身不改变 In [42]: s3.difference(s2) Out[42]: {‘ac‘, ‘china‘, ‘inter‘} #不输出任何信息,s3本身发生了改变。 In [48]: s3.difference_update(s2) In [49]: s3 #就是去除了s2中的元素 Out[49]: {‘ac‘, ‘china‘, ‘inter‘} #返回2个集合的交集,集合本身不改变 In [56]: s1.intersection(s3) Out[56]: {‘ac‘, ‘china‘, ‘inter‘} #修改s1为2个集合的交集,不返回任何东西 In [59]: s1.intersection_update(s3) #返回2个集合的差集(就是2个集合不相同的元素) In [83]: s1.symmetric_difference(s3) Out[83]: {‘ac‘, ‘inter‘} #2个集合没有交集,返回true。有交集返回false In [65]: s2.isdisjoint(s3) Out[65]: True #s3是否是s1的子集,是返回true,不是返回false In [71]: s3.issubset(s1) Out[71]: True #pop貌似是随机的移除一个元素? In [73]: s1 Out[73]: {3, ‘ac‘, ‘china‘, ‘inter‘} In [74]: s1.pop() Out[74]: 3 In [75]: s1.pop() Out[75]: ‘ac‘ In [76]: s1.pop() Out[76]: ‘inter‘ In [77]: s1 Out[77]: {‘china‘} #remove是移除指定的元素,没有返回值 In [78]: s2 Out[78]: {1, 2, 3, 4, 5} In [79]: s2.remove(2) In [80]: s2 Out[80]: {1, 3, 4, 5}
set集合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。