Python 集合

python

1. 集合介绍

2. 集合的常用操作

3. 集合间的运算

集合(set)是一个元素不可重复的无序的序列。

s = {1, "a", (1, 2)}

  • 集合在创建时,会自动删除重复的元素。
  • 可以使用花括号{}或set()函数创建集合。但注意若要创建空集合只能使用set(),因为{}默认创建的是空字典。
  • 无法使用索引访问集合的元素。
  • 集合的元素只能是不可变类型。
  • 集合对象还支持union(联合),intersection(交),difference(差)、sysmmetric_difference(对称差集)等数学运算。

2. 集合的常用操作

创建

 1 >>> # 方式一

2 >>> {1, "a", "a", (1, 2)}

3 {1, 'a', (1, 2)}

4 >>> # 方式二:使用set()函数

5 >>> set() # 创建空集合

6 set()

7 >>> set({1, 2, 3}) # 传入集合

8 {1, 2, 3}

9 >>> set((1, 2, 3)) # 传入元组

10 {1, 2, 3}

11 >>> set({1:2}) # 传入字典,仅返回键

12 {1}

13 >>> set([1, 2]) # 传入列表

14 {1, 2}

15 >>> set("abc") # 传入字符串

16 {'c', 'a', 'b'}

17 >>> set("www")

18 {'w'}

  • copy():拷贝一个新的集合(新的内存地址)。

 1 >>> s

2 {1, 2, 3, 4}

3 >>> a = s.copy()

4 >>> a

5 {1, 2, 3, 4}

6 >>> s

7 {1, 2, 3, 4}

8 >>> id(a)

9 30777096

10 >>> id(s)

11 30776984

  • add():s.add(x) 将对象x增加到集合s中,若已存在该元素,不进行任何操作。
  • update():s.update(x) 也可以增加元素,x还可以是列表、元组、字典等(逐个拆解其元素增加到集合中),x可以为多个对象。

 1 >>> s = {1, 2}

2 >>> s.add(3)

3 >>> s

4 {1, 2, 3}

5 >>> s.add((4, 5)) # 添加一个元组作为元素

6 >>> s

7 {(4, 5), 1, 2, 3}

8 >>> s.update([6, 7]) # 拆解列表元素并添加

9 >>> s

10 {1, 2, 3, 6, 7, (4, 5)}

11 >>> s.add([6, 7]) # add()无法添加可变类型

12 Traceback (most recent call last):

13 File "<stdin>", line 1, in <module>

14 TypeError: unhashable type: 'list'

15 >>> s.update({11:10}) # 仅添加键

16 >>> s

17 {1, 2, 3, 6, 7, 11, (4, 5)}

18 >>> s.update((4, 5)) # 拆解元组元素并添加

19 >>> s

20 {1, 2, 3, 4, 5, 6, 7, 11, (4, 5)}

21 >>> s.update([20, 21], (22, 23)) # 传入多个对象

22 >>> s

23 {1, 2, 3, 4, 5, 6, 7, 11, (4, 5), 20, 21, 22, 23}

  • remove():s.remove(x) 将元素x从集合s中删除,若元素x不存在则返回异常。

  • discard():类似于remove(),但若元素不存在并不会返回异常。

  • pop():随机删除一个元素,并返回该元素。

  • clear():清空集合所有的元素。

 1 >>> s = {1, 2, 3, 4, 5}

2 >>> s.remove(5)

3 >>> s

4 {1, 2, 3, 4}

5 >>> s.remove(5) # 元素不存在,报错

6 Traceback (most recent call last):

7 File "<stdin>", line 1, in <module>

8 KeyError: 5

9 >>> s.discard(5) # 元素不存在,但不报错

10 >>> s

11 {1, 2, 3, 4}

12 >>> s.pop()

13 1

14 >>> s.clear()

15 >>> s

16 set() 

3. 集合间的运算

1 >>> {1, 2} & {2, 3}  # 交集。等价于 {1, 2}.intersection({2, 3})

2 {2}

3 >>> {1, 2} | {2, 3} # 并集。等价于 {1, 2}.union({2, 3})

4 {1, 2, 3}

5 >>> {1, 2} - {2, 3} # 左集合元素不存在于右集合中的元素

6 {1}

7 >>> {1, 2} ^ {2, 3} # 左右集合不同时存在的元素

8 {1, 3}

以上是 Python 集合 的全部内容, 来源链接: utcz.com/z/387412.html

回到顶部