Python中如何详细学习集合操作技巧?

2026-06-10 00:442阅读0评论SEO问题
  • 内容介绍
  • 相关推荐

本文共计1642个文字,预计阅读时间需要7分钟。

Python中如何详细学习集合操作技巧?

集合是无序且不重复的数据组合,其作用包括:

1. 去重,即将一个列表转换为集合,去除重复元素;

2.关系测试,测试两个集合的交集、并集和差集等关系;

3.集合常用方法总结;

Python中如何详细学习集合操作技巧?

4.定制操作。

集合是无序的,天生不重复的数据组合,它的作用如下:

  • 去重,即:把一个列表变成集合,就去重了
  • 关系测试,即:测试两组集合的交集、并集和差集等

一、集合常用方法总结

二、定义

1、语法

>>> name_1 = [1,2,3,4,7,8,7,10] #把列表转换为集合 >>> name_1 = set(name_1) #转换后,去重 >>> print(name_1,type(name_1)) {1, 2, 3, 4, 7, 8, 10} <class 'set'>

 三、关系测试

1、交集(intersection())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.intersection(name_2) {8, 1, 10, 3}

2、并集(union())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.union(name_2) {1, 2, 3, 4, 5, 7, 8, 10}

 3、差集(difference())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.difference(name_2) {2, 4, 7}

 特别提示:差集取的是数值在第一个集合中,但是不在第二个集合中(在我不在你)

4、issubset()

判断一个集合是否是另一个集合的子集

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出结果 >>> name_3.issubset(name_1) True

 5、issuperset()

判断一个集合是否是另一个集合的父集

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出结果 >>> name_1.issuperset(name_3) True

 6、对称差集(symmetric_difference())

 把两个集合没有交集的数值取出来

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.symmetric_difference(name_2) {2, 4, 5, 7}

 7、isdisjoint()

判断两个集合是否有交集,没有交集,则返回True

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_3 = [11] >>> name_1 = set(name_1) >>> name_2 = set(name_2) >>> name_3 = set(name_3) #有交集 >>> name_1.isdisjoint(name_2) False #无交集 >>> name_1.isdisjoint(name_3) True

 四、关系测试(特殊符号)

1、交集(&)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 & name_2 {8, 1, 10, 3}

2、并集(|)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 | name_2 {1, 2, 3, 4, 5, 7, 8, 10}

 3、差集(-)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 - name_2 {2, 4, 7}

4、对称差集(^)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出 >>> name_1 ^ name_2 {2, 4, 5, 7}

5、是否是子集(<=)

>>> name_1 = [1,2,3,4,7,8,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出 >>> name_3 <= name_1 True

6、是否是父集(>=)

>>> name_1 = [1,2,3,4,7,8,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出 >>> name_1 >= name_3 True

 五、基本操作

1、添加(add())

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) #添加已存在,不报错 >>> name_2.add(1) >>> name_2 {8, 1, 10, 3, 5} #添加不存在,添加一个新的数值 >>> name_2.add(11) >>> name_2 {1, 3, 5, 8, 10, 11}

 2、添加多项(update())

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2.update([12,13,14]) #输出结果 >>> name_2 {1, 3, 5, 8, 10, 12, 13, 14}

 3、删除(remove(),pop(),discard())

①remove()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2 {8, 1, 10, 3, 5} >>> name_2.remove(1) #输出 >>> name_2 {8, 10, 3, 5} #删除不存在的元素,会报错 >>> name_2.remove(1) Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 1

 特别提示:用remove删除时,当元素不存在,会报错

②pop()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2 {8, 1, 10, 3, 5} #输出 >>> name_2.pop() 8

 特别提示:pop是随机删除集合中的某个元素,并且打印

③discard()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2.discard(10) #输出结果 >>> name_2 {8, 1, 3, 5} #删除不存在元素,不报错 >>> name_2.discard(10)

特别提示:用discard删除不存在的元素,不会出现报错

4、长度(len())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #结果输出 >>> len(name_1) 7

 5、x in s

测试 x 是否是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #结果输出 >>> 1 in name_1 True

 6、x not in s

测试 x 是否不是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #输出 >>> 12 not in name_1 True

更多关于Python集合操作方法可查看下面的相关链接

本文共计1642个文字,预计阅读时间需要7分钟。

Python中如何详细学习集合操作技巧?

集合是无序且不重复的数据组合,其作用包括:

1. 去重,即将一个列表转换为集合,去除重复元素;

2.关系测试,测试两个集合的交集、并集和差集等关系;

3.集合常用方法总结;

Python中如何详细学习集合操作技巧?

4.定制操作。

集合是无序的,天生不重复的数据组合,它的作用如下:

  • 去重,即:把一个列表变成集合,就去重了
  • 关系测试,即:测试两组集合的交集、并集和差集等

一、集合常用方法总结

二、定义

1、语法

>>> name_1 = [1,2,3,4,7,8,7,10] #把列表转换为集合 >>> name_1 = set(name_1) #转换后,去重 >>> print(name_1,type(name_1)) {1, 2, 3, 4, 7, 8, 10} <class 'set'>

 三、关系测试

1、交集(intersection())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.intersection(name_2) {8, 1, 10, 3}

2、并集(union())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.union(name_2) {1, 2, 3, 4, 5, 7, 8, 10}

 3、差集(difference())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.difference(name_2) {2, 4, 7}

 特别提示:差集取的是数值在第一个集合中,但是不在第二个集合中(在我不在你)

4、issubset()

判断一个集合是否是另一个集合的子集

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出结果 >>> name_3.issubset(name_1) True

 5、issuperset()

判断一个集合是否是另一个集合的父集

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出结果 >>> name_1.issuperset(name_3) True

 6、对称差集(symmetric_difference())

 把两个集合没有交集的数值取出来

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出结果 >>> name_1.symmetric_difference(name_2) {2, 4, 5, 7}

 7、isdisjoint()

判断两个集合是否有交集,没有交集,则返回True

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_3 = [11] >>> name_1 = set(name_1) >>> name_2 = set(name_2) >>> name_3 = set(name_3) #有交集 >>> name_1.isdisjoint(name_2) False #无交集 >>> name_1.isdisjoint(name_3) True

 四、关系测试(特殊符号)

1、交集(&)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 & name_2 {8, 1, 10, 3}

2、并集(|)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 | name_2 {1, 2, 3, 4, 5, 7, 8, 10}

 3、差集(-)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #结果输出 >>> name_1 - name_2 {2, 4, 7}

4、对称差集(^)

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_2 = [1,3,5,8,10] >>> name_1 = set(name_1) >>> name_2 = set(name_2) #输出 >>> name_1 ^ name_2 {2, 4, 5, 7}

5、是否是子集(<=)

>>> name_1 = [1,2,3,4,7,8,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出 >>> name_3 <= name_1 True

6、是否是父集(>=)

>>> name_1 = [1,2,3,4,7,8,10] >>> name_3 = [1,2,3,4] >>> name_1 = set(name_1) >>> name_3 = set(name_3) #输出 >>> name_1 >= name_3 True

 五、基本操作

1、添加(add())

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) #添加已存在,不报错 >>> name_2.add(1) >>> name_2 {8, 1, 10, 3, 5} #添加不存在,添加一个新的数值 >>> name_2.add(11) >>> name_2 {1, 3, 5, 8, 10, 11}

 2、添加多项(update())

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2.update([12,13,14]) #输出结果 >>> name_2 {1, 3, 5, 8, 10, 12, 13, 14}

 3、删除(remove(),pop(),discard())

①remove()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2 {8, 1, 10, 3, 5} >>> name_2.remove(1) #输出 >>> name_2 {8, 10, 3, 5} #删除不存在的元素,会报错 >>> name_2.remove(1) Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 1

 特别提示:用remove删除时,当元素不存在,会报错

②pop()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2 {8, 1, 10, 3, 5} #输出 >>> name_2.pop() 8

 特别提示:pop是随机删除集合中的某个元素,并且打印

③discard()

>>> name_2 = [1,3,5,8,10] >>> name_2 = set(name_2) >>> name_2.discard(10) #输出结果 >>> name_2 {8, 1, 3, 5} #删除不存在元素,不报错 >>> name_2.discard(10)

特别提示:用discard删除不存在的元素,不会出现报错

4、长度(len())

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #结果输出 >>> len(name_1) 7

 5、x in s

测试 x 是否是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #结果输出 >>> 1 in name_1 True

 6、x not in s

测试 x 是否不是 s 的成员

>>> name_1 = [1,2,3,4,7,8,7,10] >>> name_1 = set(name_1) #输出 >>> 12 not in name_1 True

更多关于Python集合操作方法可查看下面的相关链接