zoukankan      html  css  js  c++  java
  • Python学习笔记——集合类型

    集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset)

    可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素

    不可变集合是有哈希值的,能被用做字典的键或者是作为集合中的一个成员

    1.创建集合类型和给集合赋值

    >>> s = set('cheeseshop')
    >>> s
    set(['c', 'e', 'h', 'o', 'p', 's'])
    >>> t = frozenset('bookshop')
    >>> t
    frozenset(['b', 'h', 'k', 'o', 'p', 's'])
    >>> type(s)
    <type 'set'>
    >>> type(t)
    <type 'frozenset'>
    >>> len(s)
    6
    >>> len(t)
    6
    >>> s == t
    False
    

    2.访问集合中的值

    >>> 'k' in s
    False
    >>> 'k' in t
    True
    >>> for i in s:
    ...     print i
    ... 
    c
    e
    h
    o
    p
    s
    

    3.更新集合

    >>> s.add('z')
    >>> s
    set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
    >>> s.update('abc')
    >>> s
    set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's', 'z'])
    >>> s.remove('z')
    >>> s
    set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's'])
    >>> s -= set('abc')
    >>> s
    set(['e', 'h', 'o', 'p', 's'])
    

       不可变集合不能修改

    4.删除集合中的成员和集合

    >>> del t
    

    5.集合类型操作符

      <1>标准类型操作符

        1.成员关系(in,not in)

        2.集合等价/不等价(==,!=)

        3.子集/超集(<,<=,>,>=)

      <2>集合类型操作符

        1.联合(|)

    >>> s|t
    set(['b', 'e', 'h', 'k', 'o', 'p', 's'])
    

        2.交集(&)

    >>> s&t
    set(['h', 's', 'o', 'p'])
    

        3.差补/相对补集(-)

    >>> s-t
    set(['e'])
    

         4.对称差分(^),即(XOR)异或,只能是属于集合s或者集合t的成员,不能同时属于两个集合

    >>> s^t
    set(['b', 'e', 'k'])
    

         5.混合集合类型操作

           类型不相同的时候,产生的结果类型和左操作数的类型相同

      <3>集合类型操作符(仅适用于可变集合)

        1.update()方法或者|=

    >>> s|=t
    >>> s
    set(['b', 'e', 'h', 'k', 'o', 'p', 's'])
    

         2.intersection_update()方法或者&=,保留两个集合重复的成员

    >>> s
    set(['a', 'c', 'b', 'd'])
    >>> t
    set(['e', 'd', 'f'])
    >>> s&=t
    >>> s
    set(['d'])
    

        3.difference_update()方法或者-=

        4.symmetric_difference_update()方法或者^=,差分操作

    6.内建函数

      <1>标准类型函数——len()

        <2>集合类型工厂函数——set()和frozenset()

    7.集合类型内建方法——P184

  • 相关阅读:
    ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 17 电话号码的字母组合
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5748148.html
Copyright © 2011-2022 走看看