集合set

一、什么是集合?

集合是无序的,不重复的数据集合。集合本身是可变的,但是,它里面的元素是不可变类型的。

1、集合的创建

可用 { }(大括号)或者set()来创建集合。注意,空集合是用set()来表示。

set1 = set({1,2,3})
set2 = {1,2,3}
print(set1,set2)

2、集合的增加

有add和update(迭代增加)两种增加方式。

set1.add(x):添加一项.

set1.update(x):添加多项,可以添加字典、列表和元祖。

# add
set1 = {1,2,3}
set1.add("hello")
print(set1)   # {1, 2, 3, 'hello'}

# update 迭代增加
set1.update("xiao")
print(set1)  # {'i', 1, 2, 3, 'o', 'x', 'a', 'hello'}

set1.update([4,5])
print(set1)   # {4, 1, 2, 3,5}

set1.update({"name":"k","sex":"F"})
print(set1)  # {1, 2, 3, 'name', 'sex'}

3、集合的修改

集合里面的元素是不可变的,所以不能修改集合里面的元素。

4、集合的删除

删除元素有remove,discard,pop方法,清空集合是clear,删除集合是del set。

set1 = {1,2,3,"hello"}
# remove 删除指定元素,不存在会报错
set1.remove("hello")
print(set1)
set1.remove("wo")  #remove删除不存在的元素,会报错,keyerror

# discard
set1.remove(1)
print(set1)
set1.discard("wo")  #discard删除不存在的元素,不会报错

# pop 随机删除
set1.pop()
print(set1)

# clear 清空集合
set1.clear()
print(set1)  # 返回set() 空集合

# del 删除集合
del set1

5、集合的其他操作

  5.1交集(&或者intersection)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)   # {4, 5}
print(set1.intersection(set2))  # {4, 5}

  5.2并集(| 或者union)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)   # {1, 2, 3, 4, 5, 6, 7, 8}
print(set1.union(set2))    # {1, 2, 3, 4, 5, 6, 7, 8}

  5.3差集(- 或者 difference)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2)  # {1, 2, 3}
print(set1.difference(set2))    #{1, 2, 3}

  5.4 反交集 (^ 或者symmetric_difference)

# 反交集 set1和set2除了交集外的其他元素集合
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)  #{1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))  #{1, 2, 3, 6, 7, 8}

  5.5子集和超集

set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)  # True set1是set2的子集
print(set1.issubset(set2))   # True

6、frozenset不可变集合,让集合变成不可变类型

set1 = {1,2,3,4,5}
set2 = frozenset(set1)
print(set1,type(set1))  # {1, 2, 3, 4, 5} <class 'set'>
print(set2,type(set2))  #  frozenset({1, 2, 3, 4, 5}) <class 'frozenset'>

 

posted @ 2019-04-03 11:18  雨的记忆  阅读(114)  评论(0)    收藏  举报