• 说说Python集合的那些事儿


    大家好,我是IT共享者,人称皮皮。今天给大家来捋一捋Python集合。

    一、什么是集合?

    集合(set)和字典(dict)类似,它是一组 key 的集合,但不存储 value。集合的特性就是:key 不能重复。

    二、集合常用操作

    1. 创建集合

    set 的创建可以使用 {} 也可以使用 set 函数:

    s1 = {'a', 'b', 'c', 'a', 'd', 'b'}  # 使用 {}
    print(s1)
    (['a', 'c', 'b', 'd'])
    
    s2 = set('helloworld')  # 使用 set(),接收一个字符串
    print(s2)
    set(['e', 'd', 'h', 'l', 'o', 'r', 'w'])
    s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3'])  # 使用 set(),接收一个列表
    print(s3)
    set(['.mp3', '.mkv', '.rmvb', '.mp4'])
    

    2. 遍历集合

    s = {'a', 'b', 'c', 'a', 'd', 'b'}
    for e in s:
        print(e)
    

    3. 添加元素

    add() 方法可以将元素添加到 set 中,可以重复添加,但没有效果。

    s = {'a', 'b', 'c', 'a', 'd', 'b'}
    print(s)
    set(['a', 'c', 'b', 'd'])
    s.add('e')
    print(s)
    set(['a', 'c', 'b', 'e', 'd'])
    s.add('a')
    print(s)
    set(['a', 'c', 'b', 'e', 'd'])
    s.add(4)
    print(s)
    set(['a', 'c', 'b', 4, 'd', 'e'])
    

    4. 删除元素

    remove() 方法可以删除集合中的元素, 但是删除不存在的元素,会抛出 KeyError,可改用 discard()

    例子:

    s = {'a', 'b', 'c', 'a', 'd', 'b'}
    print(s)
    set(['a', 'c', 'b', 'd'])
    s.remove('a')  # 删除元素 'a'
    print(s)
    set(['c', 'b', 'd'])
    s.remove('e')  # 删除不存在的元素,会抛出 KeyError
    

    s = {'a', 'b', 'c', 'a', 'd', 'b'}
    print(s)
    set(['a', 'c', 'b', 'd'])
    s.remove('a')  # 删除元素 'a'
    print(s)
    set(['c', 'b', 'd'])
    s.discard('e')  # 删除不存在的元素, 不会抛出 KeyError
    

    三、交集/并集/差集

    Python 中的集合也可以看成是数学意义上的无序和无重复元素的集合,因此,我们可以对两个集合作交集、并集等。

    看看例子:

    s1 = {1, 2, 3, 4, 5, 6}
    s2 = {3, 6, 9, 10, 12}
    s3 = {2, 3, 4}
    print(s1 & s2 ) # 交集
    set([3, 6])
    print(s1 | s2)  # 并集
    set([1, 2, 3, 4, 5, 6, 9, 10, 12])
    print(s1 - s2)  # 差集
    set([1, 2, 4, 5])
    print(s3.issubset(s1))  # s3 是否是 s1 的子集
    
    print(s3.issubset(s2))  # s3 是否是 s2 的子集
    
    print(s1.issuperset(s3))  # s1 是否是 s3 的超集
    
    print(s1.issuperset(s2))  # s1 是否是 s2 的超集
    

    四、总结

    本文主要介绍了Python的另外一种形式(集合),通过讲解集合中如何去创建集合,遍历集合,解释了两种常见的集合操作,添加元素和删除元素。最后通过一个小项目,介绍了集合之间中的三种关系。希望能够帮助大家更好的学习。
    想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

  • 相关阅读:
    js 闭包范式概述
    [置顶] 学习JDK源码:编程习惯和设计模式
    第七届蓝桥杯JavaB组国(决)赛部分真题
    第七届蓝桥杯JavaA组国(决)赛部分真题
    第七届蓝桥杯JavaA组国(决)赛部分真题
    第七届蓝桥杯JavaA组国(决)赛部分真题
    第七届蓝桥杯JavaA组国(决)赛部分真题
    第七届蓝桥杯JavaA组国(决)赛部分真题
    Java实现蓝桥杯历届真题国王的遗产
    Java实现蓝桥杯历届真题国王的遗产
  • 原文地址:https://www.cnblogs.com/dcpeng/p/14691286.html
Copyright © 2020-2023  润新知