zoukankan      html  css  js  c++  java
  • Python第五章-内置数据结构05-集合

    Python内置数据结构

    五、集合(set)

    python 还提供了另外一种数据类型:set

    set用于包含一组无序的不重复对象。所以set中的元素有点像dictkey。这是setlist的最大区别

    set基本应用有元素测试、去除list、tuple中的重复元素。

    set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。

    set集合创建方式一般有 2 种:字面量方式和把list、tuple、str等转换成set

    5.1 set集合的创建

    5.1.1 字面量方式创建set集合

    字面量方式创建set集合和字面量dict有点像,都是使用的{}来包裹, 只不过set中不是键值对而已。

    basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    
    print(basket)
    

    set中不能存储重复元素


    5.1.2 把list中的元素存入到set

    使用set构造函数支持把list中的元素直接存入到新创建的set中。

    nums1 = [10, 20, 30, 20, 10, 100, 200, 100]
    nums2 = set(nums1)
    print(nums2)
    

    重复元素也去除成功了!

    5.1.3 把字符串中的每个字符作为一个元素存入到set

    s = "hello world, I love you"
    cs = set(s)
    print(cs)
    

    你会发现重复字符已经去除完毕了。

    注意:

    创建空的set不能直接使用字面量的形式{},这样创建的是空的字典。只能使用set构造函数。

    s = {}
    print(type(s) is dict)
    
    s = set()
    print(type(s) is dict)
    

    5.2 set常用操作

    5.2.1支持innot in

    nums1 = {10, 20, 30, 20, 10, 100, 200, 100}
    print(10 in nums1)    # True
    print(20 not in nums1)    # False
    

    5.2.2 数学操作

    set也支持一些数学操作,像:并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。

    a = set("abcde")
    b = set("defghi")
    print("a:" + str(a))
    print("b:" + str(b))
    
    print("a - b 差集: " + str(a - b))  # 差集   a 中有,但是 b 中没有
    print("a | b 并集: " + str(a | b))  # 并集   a 和 b 的元素全部都有 当然不会重复
    print("a & b 交集: " + str(a & b))  # 交集   a 和 b 共同有的元素
    print("a ^ b 对称差集: " + str(a ^ b))  # 对称差集   a 有或者 b 有,但是不是他们都有
    

    5.2.3 set推导

    list推导一样,set也支持set推导

    a = {x for x in 'abracadabra' if x not in 'abc'}
    print(a)
    

    5.2.4 在集合中添加新项

    s = set("hello")
    
    s.add("z")  # 添加一项
    print(s)
    
    s.update(["x", "y"])    # 添加多项
    s.update("mn")  # 添加多项
    print(s)
    

  • 相关阅读:
    iOS
    iOS多线程编程之GCD的常见用法
    iOS多线程编程之GCD的基本使用
    iOS多线程编程之线程的状态
    iOS多线程编程之GCD介绍
    iOS多线程编程之线程间的通信
    iOS多线程编程之创建线程安全
    iOS多线程编程之创建线程
    iOS多线程编程之多线程简单介绍
    服务网关
  • 原文地址:https://www.cnblogs.com/yanadoude/p/12612634.html
Copyright © 2011-2022 走看看