zoukankan      html  css  js  c++  java
  • day09--基本数据类型集合及其内置函数

    一、集合的定义


    1.1定义:在{}内用逗号隔开多个元素,元素为不可变数据类型,且元素的排列是无序的。

    >>> list_1 = ['egon','male',18,['play','read']]
    >>> s = set(list_1)
    Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        s = set(list_1)
    TypeError: unhashable type: 'list'
    >>> 
    
    提示集合的元素必须是可哈希的,即不可变类型

    1.2集合的元素是无序的,且是不重复的

    >>> list1 = [1,1,2,2,3,3]
    >>> s = set(list1)
    >>> print(s)
    {1, 2, 3}
    >>>

    注意:s = {} 系统默认是空字典

    1.3类型转换

    集合可以将可迭代对象转换成结合,但是如果可迭代对象是容器类型,那么可迭代对象的子元素必须是不可变数据类型

    1.4内置方法

    (1)取交集 s1 & s2

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 & friends2
    res = friends1.intersection(friends2)
    print(res)
    
    {'egon', 'jason'}

    (2)取并集  s1 | s2

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 | friends2
    res = friends1.union(friends2)
    print(res)
    
    {'egon', 'kevin', 'ricky', 'Jy', 'zero', 'jason'}

    (3)取差集  s1 - s2  or  s1.difference(s2)

    取f1独有的好友

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 - friends2
    res = friends1.difference(friends2)
    print(res)
    
    {'kevin', 'zero'}

    取f2独有的好友

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends2 - friends1
    res = friends1.symmetric_difference(friends2)
    print(res)
    
    {'ricky', 'Jy'}

    (4)对称差集 f1 ^ f2

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends2 ^ friends1
    print(res)
    
    {'kevin', 'Jy', 'ricky', 'zero'}

    (5)父子集(包含关系)

    s1 = {1,2,3}
    s2 = {1,2,4}
                    # 不存在包含关系,下面比较均为False
    print(s1.issuperset(s2))
    print(s1 > s2)
    print(s1 < s2)
    s1 = {1,2,3}
    s2 = {1,2}
    print(s1.issubset(s2))
    print(s1 > s2)      # 当s1大于或等于s2时,才能说s1是s2的爹
    s1={1,2,3}
    s2={1,2,3}
    print(s1 == s2) # s1与s2互为父子

    1.4 去重

    注意:1、只能针对不可变类型去重

               2、无法保证原来的顺序

    l = [1,'a','b',1,1,2,3]
    l = list(set(l))
    print(l)
    
    [1, 2, 3, 'a', 'b']

    1.5其他内置方法

    (1) discard

    s = {1,2,3}
    s.discard(4)    # 删除元素不存在,do nothing
    print(s)

    remove

    s = {1,2,3}
    s.remove(4)     # 删除元素不存在,则会报错
    print(s)

    pop

    >>> s = {1,2,3}
    >>> res=s.pop()
    >>> print(res)
    1
    >>> 

    (2)update

    >>> s = {1,2,3}
    >>> s.update([4,5,6])
    >>> print(s)
    {1, 2, 3, 4, 5, 6}
    >>> s.update([7,[8,9]])
    Traceback (most recent call last):
      File "<pyshell#16>", line 1, in <module>
        s.update([7,[8,9]])
    TypeError: unhashable type: 'list'
    >>> 
    
    目标对象的子元素必须为可哈希数据类型(即不可变数据类型)

    (3)add

    s = {1,2,3}
    s.add(4)
    print(res)

    其他方法了解

  • 相关阅读:
    生成4位随机验证码工具类
    MD5加随机盐工具类
    Excel文件解析工具类
    实践作业4:Web测试实践(小组作业)记录4
    实践作业4:Web测试实践(小组作业)记录3
    实践作业4:Web测试实践(小组作业)记录2
    实践作业4:Web测试实践(小组作业)记录1
    实践作业3:白盒测试实践(小组作业)记录3
    实践作业3:白盒测试实践(小组作业)记录2
    实践作业3:白盒测试实践(小组作业)记录1
  • 原文地址:https://www.cnblogs.com/surpass123/p/12484228.html
Copyright © 2011-2022 走看看