Python3.5集合及其常见运算实例详解

本文实例讲述了Python3.5集合及其常见运算。分享给大家供大家参考,具体如下:

1、集合的定义:集合是一个无序的、无重复的数据的数据组合。

2、集合的特征:

(1)去除重复元素:将一个列表变成集合就可实现去重。

(2)测试关系:测试两组数据之间交集、并集、差集等关系。

3、集合常用的操作:

(1)去重复:将列表变成集合,形式:集合=set(列表)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)
print(list_1,type(list_1))

运行结果:

{1, 3, 5, 6, 8, 9} <class 'set'>

(2)测试两个集合的交集——形式为:print((集合1).intersection(集合2))     或  print(集合1 & 集合2)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.intersection(list_2))  #两个集合的交集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{8, 9, 5, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 & list_2)  #两个集合的交集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{8, 9, 2, 5, 6}

(3)测试两个集合的并集(合并两个集合并去除重复元素)——形式为:print((集合1).union(集合2))   或    集合1 | 集合2

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.union(list_2))     #两个集合的并集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 | list_2)  #两个集合的并集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 2, 3, 4, 5, 6, 8, 9}

(4)测试两个集合的差集——形式为:print((集合1).difference(集合2))    或者   print((集合2).difference(集合1))

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.difference(list_2))  #集合1对集合2的差集
print(list_2.difference(list_1))  #集合2对集合1的差集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 3}
{2, 4}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 - list_2)  #集合1对集合2的差集
print(list_2 - list_1)  #集合2对集合1的差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{1, 3, 4}
{0}

(5)测试一个集合是否为另一个集合的子集——形式为:print(集合1.issubset(集合2))   或者   print(集合2.issubset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issubset(list_2))   #集合1是否为集合2的子集
print(list_2.issubset(list_1))   #集合2是否为集合1的子集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
False
True

(6)测试一个集合是否为另一个集合的父集——形式为:print(集合1.issuperset(集合2))   或者   print(集合2.issuperset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issuperset(list_2))  #集合1是否为集合2的父集
print(list_2.issuperset(list_1))  #集合2是否为集合1的父集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
True
False

(7)测试两个集合的对称差集——形式为:print(集合1.symmetric_difference(集合2))   或  print(集合1 ^ 集合2)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,5,4,65,8,9,3])
print(list_1,list_2)
print(list_1.symmetric_difference(list_2))  #取两个集合的对称差集(互相都没有的元素)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {65, 3, 4, 5, 8, 9, 22}
{65, 1, 22, 2, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 ^ list_2)  #取两个集合的对称差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 3, 4}

(8)测试两个集合的交集,没有交集返回True;有交集返回False——形式为:print(集合1.isdisjoint(集合2))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,54,65,81,10,0])
print(list_1,list_2)
print(list_1.isdisjoint(list_2))  #两个集合没有交集返回True

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 65, 10, 81, 54, 22}
True

(9)给集合添加一项元素——调用:要添加内容的集合.add(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.add(54)  #添加
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9, 54}

(10)给集合添加多项元素——调用:要添加内容的集合.update(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.update([11,22,33])
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 33, 8, 9, 11, 22}

(11)给集合删除一项元素——调用:要删除内容的集合.remove(删除内容)  注:删除的元素不存在会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.remove(1)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{2, 3, 4, 5, 6, 8, 9}

随意删除集合里的一个元素并将删除的元素返回——调用:print(集合.pop())

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.pop())
print(list_1.pop())
print(list_1.pop())

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
1
2
3

删除集合中指定的一项元素——调用:集合.discard(删除元素)   注:删除的元素不存在时会输出None,不会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.discard(23))
list_1.discard(3)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
None
{1, 2, 4, 5, 6, 8, 9}

(12)求集合的长度——调用:print(len(集合))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(len(list_1))

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
8

(13)测试x是否为s的成员(适用于字符串、列表、字典、集合)——形式为:x in s
测试x是否不是s的成员(适用于字符串、列表、字典、集合)——形式为:x noti n  s

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(3 in list_1)
print(7 not in list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
True
True

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python列表(list)操作技巧总结》、《Python字典操作技巧汇总》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python中集合类型(set)学习小结

    set 是一个无序的元素集合,支持并.交.差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引.分片等类序列的操作. 初始化 复制代码 代码如下: s0 = set() d0 = {} s1 = {0} s2 = {i % 2 for i in range(10)} s = set('hi') t = set(['h', 'e', 'l', 'l', 'o']) print(s0, s1, s2, s, t, type(d0)) 运行结果: 复制代码 代码如下: set() {

  • python3中set(集合)的语法总结分享

    介绍 set 顾明思义,就是个集合,集合的元素是唯一的,无序的.一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组) 集 合 是 一 个 无 序 不 重 复 元素 的 集 . 基 本 功 能 包 括 关 系 测 试 和 消 除 重 复 元 素 . 集 合 对 象 还 支 持 union( 联 合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算. 大括号或 s

  • 深入解析Python中的集合类型操作符

    (1)标准类型操作符(所有的集合类型) 成员关系 (in, not in)         就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价         等价/不等价被用于在相同或不同的集合之间做比较.两个集合相等是指,对每个集合而言,当且仅当其中一个集合中的每个成员同时也是另一个集合中的成员.也可以说每个集合必须是另一个集合的一个子集, 即s <= t 和s>= t 的值均为真(True),或(s <= t and s>

  • Python中集合的内建函数和内建方法学习教程

    集合内建函数和内建方法 (1)标准类型函数        len():把集合作为参数传递给内建函数 len(),返回集合的基数(或元素的个数). (2)集合类型工厂函数        set()和 frozenset()工厂函数分别用来生成可变和不可变的集合.如果不提供任何参数,默认会生成空集合.如果提供一个参数,则该参数必须是可迭代的,即一个序列或迭代器或支持迭代的一个对象,例如一个文件或一个字典. (3)方法(所有的集合方法) s.issubset(t)                  如

  • Python实现求一个集合所有子集的示例

    方法一:回归实现 def PowerSetsRecursive(items): """Use recursive call to return all subsets of items, include empty set""" if len(items) == 0: #if the lsit is empty, return the empty list return [[]] subsets = [] first_elt = items[0]

  • Python中的集合类型知识讲解

    集合类型         数学上,,把set称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(set elements).Python把这个概念引入到它的集合类型对象里.集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.数学集合转为Python的集合对象很有效,集合关系测试和union.intersection等操作符在Python里也同样如我们所预想地那样工作.         和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得

  • python过滤字符串中不属于指定集合中字符的类实例

    本文实例讲述了python过滤字符串中不属于指定集合中字符的类.分享给大家供大家参考.具体如下: # -*- coding: utf-8 -*- import sets class Keeper(object): def __init__(self, keep): self.keep = sets.Set(map(ord, keep)) def __getitem__(self, n): if n not in self.keep: return None return unichr(n) de

  • Python set集合类型操作总结

    Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决 复制代码 代码如下: x & y & z # 交集 2.去重 复制代码 代码如下: >>> lst = [1,2,3,4,1] >>> print list(set(lst)) [1, 2, 3, 4] 用法 注意se

  • python 集合 并集、交集 Series list set 转换的实例

    set转成list方法如下: list转成set方法如下: s = set('12342212')                                                      l = ['12342212']  print s    # set(['1', '3', '2', '4'])                                    s = set(l[0])  l = list(s)                             

  • python利用正则表达式排除集合中字符的功能示例

    前言 我们在之前学习过通过集合枚举的功能,把所有需要出现的字符列出来,保存在集合里面,这样正则表达式就可以根据集合里的字符是否存在来判断是否匹配成功,如果在集合里,就匹配成功,否则不成功.现在有一个问题,就是要把集合里列出的字符都不能出现才匹配成功,这个需求怎么样实现呢?其实比较简单,只需要在集合前面添加一个字符^,就让正则表达式匹配时,发现有字符在集合里就匹配不成功.下面话不多说了,来一起看看详细的介绍吧. 例子如下: #python 3.6 #蔡军生 #http://blog.csdn.ne

  • Python中列表、字典、元组、集合数据结构整理

    本文详细归纳整理了Python中列表.字典.元组.集合数据结构.分享给大家供大家参考.具体分析如下: 列表: 复制代码 代码如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] 字典: 复制代码 代码如下: di = {'a':123,'b':'something'} 集合: 复制代码 代码如下: jihe = {'apple','pear','apple'} 元组: 复制代码 代码如下: t = 123,456,'hello' 1.列表 空

  • python判断一个集合是否包含了另外一个集合中所有项的方法

    本文实例讲述了python判断一个集合是否包含了另外一个集合中所有项的方法.分享给大家供大家参考.具体如下: >>> L1 = [1, 2, 3, 3] >>> L2 = [1, 2, 3, 4] >>> set(L1).difference(L2) set([ ]) >>> set(L2).difference(L1) set([4]) 希望本文所述对大家的Python程序设计有所帮助.

随机推荐