python列表 list 详解
pyton元组 tuple 详解
python字典 dict 详解
1. 创建集合:
注意a = {}创建的是字典,只有里面放入元素,用逗号隔开才是集合,也可以使用set()进行强制转换创建集合。
a = {}
b = {1,2,3,5,8}
c = set({})
d = set([1,2,3,5,8])
print(type(a))
print(type(b))
print(type(c))
print(type(d))
集合的元素是不重复的
d = {1,2,3,2,1,5,6,3,8}
print(d)
{1, 2, 3, 5, 6, 8}
2. 访问集合:集合是无序的,不能通过索引访问集合元素
for i in b:
print(i)
1
2
3
5
8
3. 修改集合: set.add(item) ,set.update(item) 和 set.remove(item)
add()方法将item作为一个整体加入集合,update()方法则先将item进行元素拆分,再将拆分后的个体分别加入结合。
d = {1,2,3,2,1,5,6,3,8}
print(d)
{1, 2, 3, 5, 6, 8}
d.add('python')
print(d)
{1, 2, 3, 5, 6, 8, 'python'}
d.update('num')
print(d)
{1, 2, 3, 5, 6, 8, 'python', 'u', 'n', 'm'}
注意:set中不能添加unhashable对象,如可变容器列表,字典等。直接使用add()添加列表会出错。
d.update([0,-1,-2])
print(d)
{0, 1, 2, 3, 5, 6, 8, 'python', 'u', 'n', 'm', -2, -1}
d.add([0,-1,-2])
print(d)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
----> 1 d.add([0,-1,-2])
2 print(d)
TypeError: unhashable type: 'list'
d.remove(8)
print(d)
{0, 1, 2, 3, 5, 6, 'python', 'u', 'n', 'm', -2, -1}
4. 其他操作:求交,并,差集
(1) 求交集 &
set1 = {1,2,3,5,8}
set2 = {2,5,7,9,0}
set3 = set1 & set2
print(set3)
{2, 5}
(2) 求并集 |
set4 = set1 | set2
print(set4)
{0, 1, 2, 3, 5, 7, 8, 9}
(3)求差集 -: set1-set2表示求set1集合中去掉在set2中存在的元素,所获得的差集。
set5 = set1 - set2
print(set5)
set6 = set2 - set1
print(set6)
{8, 1, 3}
{0, 9, 7}
(4) 与非操作^:set1^set2表示求只在set1或者只在set2中出现的元素组成的集合(把在两个集合中均出现的元素去掉)
set1^set2
{0, 1, 3, 7, 8, 9}
5. frozenset的使用: frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
set8 = frozenset({1,2,3,5,8})
print(set8)
frozenset({1, 2, 3, 5, 8})
set8.add(10)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
----> 1 set8.add(10)
AttributeError: 'frozenset' object has no attribute 'add'