博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
set built-in function
阅读量:6913 次
发布时间:2019-06-27

本文共 2822 字,大约阅读时间需要 9 分钟。

集合类型

集合对象是一组无序排列的可哈希的值,集合可以作为字典的键。因为集合是无序的,不可以为集合创建索引或执行切片操作,也没有键可以用来获取元素的值。

集合有两种不同的类型,可变集合和不可变集合。可变集合不是可哈希的值

集合类型中元素不可重复

 

创建集合类型的方法只有一个,就是集合的工厂方法set()和frozenste(),括号内的参数必须是可迭代的对象,例如一个文件或着一个字典

set('book')

>>>['b','k','o','o']

 

当进行集合类型的交集并集差集时,所产生的结果类型和左操作数的类型相同,例如:

 

s = set('continue')t = frozenset('break')v = s | tprint(v)>>>{'o', 'u', 't', 'n', 'e', 'k', 'c', 'i', 'b', 'r', 'a'}print(type(v))>>>
      # 产生的类型和 s 的类型相同

 

 

dir(set):

['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__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']

 

 

1.add(obj) 在集合中添加对象obj

 

 

s = set('book')s.add('shop')print(s)>>>{'o', 'k', 'shop', 'b'}

 

2.clear 删除集合中的所有元素

s = set('book')s.clear()print(s)>>>set()

3.s.copy 返回一个新集合,它是集合s的浅复制

4.s.difference(t)  返回一个新集合,该集合是s的成员,但不是t的成员,相当于s - t(差分操作)

s = set('book')t = set('shop')v = s.difference(t)print(v)>>>{'b', 'k'}

5.s.difference_update(t) s中的成员是属于s但不包含在t中的元素,它与difference的区别在于difference会返回一个新集合,而它不会

s = set('book')t = set('shop')s.difference_update(t)print(s)>>>{'b', 'k'}

6.s.discard(obj) 如果obj是集合s中的元素。从集合s中删除对象obj

s = set('book')s.discard('o')print(s)>>>{'k', 'b'}

7.s.intersection(t) 返回一个新集合,是s和t的交集,等价操作符 s & t

s = set('book')t = set('shop')v = s.intersection(t)print(v)>>>{'o'}

8.s.intersection_update(t) 和上面类似,只是不返回新集合

9.s.isdisjoint(t) 如果集合s和t没用交集,返回True,否则返回False

s = set('book')t = set('shp')v = s.isdisjoint(t)print(v)>>>True

10.s.issubset(t) 如果s是t的子集,返回True,否则返回False

11.s.issuperset(t) 如果t是s的超集,返回True,否则返回False

s = set('bookshop')t = set('book')v = s.issuperset(t)print(v)>>>True

12.pop() 删除集合中的任意一个对象,并返回它

s = set('bookshop')v = s.pop()print(v)>>>p    # 不唯一,可以是s中任意一个对象

13.s.remove(obj) 删除对象obj,如果集合里面没有obj,则有keyerror错误

14.s.symmetric_difference(t) 返回以个新集合,该集合是s或t的成员,但不是s和t共有的成员。对称差分操作,等价操作符是s ^ t

s = set('bookshop')t = set('break')v = s.symmetric_difference(t)print(v)>>>{'o', 'r', 'p', 'a', 'e', 'h', 's'}

15.s.symmetric_difference_update(t) 和上面类似,只是不返回新集合

16.union 并集,等价操作符是s | t

s = set('bookshop')t = set('break')v = s.union(t)print(v)>>>{'s', 'a', 'b', 'r', 'p', 'e', 'k', 'o', 'h'}

17.s.update(t) 用t中的元素修改s

s = set('bookshop')t = set('break')s.update(t)print(s)>>>{'p', 'e', 'r', 'b', 'o', 'k', 'h', 'a', 's'}

 

 

以上

 

转载于:https://www.cnblogs.com/learnC/p/5963162.html

你可能感兴趣的文章
1032. Sharing (25)
查看>>
JSP的隐藏对象
查看>>
2014秋C++ 第8周项目 分支程序设计
查看>>
[pig] pig 基础使用
查看>>
java中的线程同步
查看>>
Does the parameter type of the setter match the return type of the getter?
查看>>
MongoDB count distinct group by JavaAPI查询
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
LibEvent代码阅读--多缓冲区和零拷贝技术
查看>>
学生管理系统报错(一)
查看>>
使用 Live555 搭建流媒体服务器
查看>>
第十四周(OOP版电子词典)
查看>>
网络基础知识小小说
查看>>
linux lsof命令详解
查看>>
POJ 1163 The Triangle【dp+杨辉三角加强版(递归)】
查看>>
vue如何在路由跳转的时候更新组件
查看>>
Java多线程(二)
查看>>
《深入浅出数据分析》读后具体解释
查看>>
C++中的异常安全性
查看>>
Xcode中的变量模板(variable template)的使用方法
查看>>