不允许重复的元素出现
无序排列
可哈希
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}原文:http://chomper.blog.51cto.com/7866214/1935148