集合(set)

集合是由不同可hash的值组成的,里面所有的值都是唯一的,也是无序的

集合的创建

>>>set_test = {"name", "age", "hometown"}
## 把值放入{ }中 >>>lis = ("name", "age", "hometown")
>>>set_test = set(lis)
>>> set_test
{'name', 'age', 'hometown'}
##利用set()函数,把其他类型转换为set >>> list_test = ["name", "age", "hometown"]
>>> set_test = frozenset(list_test)
>>> set_test
frozenset({'name', 'age', 'hometown'})
##利用frozenset()函数可以创造一个set,并把它放到元组里面

集合的操作

  • add(self, *args, **kwargs)

    添加值到集合里面

    >>> set_test
    {'name', 'age', 'hometown'}
    >>> set_test.add("hobby")
    >>> set_test
    {'name', 'age', 'hobby', 'hometown'}
  • clear(self, *args, **kwargs)

    清空集合

  • copy(self, *args, **kwargs)

    浅拷贝

  • discard(self, *args, **kwargs)

    删除某值,没有时不会报错

    >>> set_test
    {'name', 'age', 'hobby', 'hometown'}
    >>> set_test.discard("hobby")
    >>> set_test
    {'name', 'age', 'hometown'}
  • pop(self, *args, **kwargs)

    当集合是由列表和元组组成时,set.pop()是从左边删除元素的,并且可以得到被删除的值

    >>> set_test
    {'name', 'age', 'hometown'}
    >>> set_test.pop()
    'name'
    >>> set_test.pop()
    'age'
  • remove(self, *args, **kwargs)

    删除某值,但是如果没有的话,就会报错

    >>> set_test = {'name', 'age', 'hometown'}
    >>> set_test.remove("hometown")
    >>> set_test
    {'name', 'age'}
  • update(self, *args, **kwargs)

    更新值,可以在set里面添加多个值

    >>> set_test = {"Jack", "Mark", "Ada"}
    >>> set_test.update(["Jewish", "Obanma", "Anna"])
    >>> print(set_test)
    {'Obanma', 'Mark', 'Jack', 'Anna', 'Ada', 'Jewish'}

集合的运算

  • 求交集

    >>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
    >>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.intersection(set_test2)
    >>> print(test_result)
    {'YuanMing', 'Hermaeus'} >>> test_result = set_test1&set_test2
    >>> print(test_result)
    {'YuanMing', 'Hermaeus'}
  • 求并集

    >>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
    >>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.union(set_test2)
    >>> print(test_result)
    {'Kelan', 'YuanMing', 'ZhangJie', 'Jack', 'Hermaeus', 'Chenglong'} >>> test_result = set_test1|set_test2
    >>> print(test_result)
    {'Kelan', 'YuanMing', 'ZhangJie', 'Jack', 'Hermaeus', 'Chenglong'}
  • 求差集

    >>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
    >>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"} >>> test_result = set_test1.difference(set_test2)
    >>> test_result1 = set_test1.difference(set_test2)
    >>> print(test_result1)
    {'Kelan', 'Chenglong'} >>> test_result1 = set_test1-set_test2
    >>> print(test_result1)
    {'Kelan', 'Chenglong'} >>> test_result2 = set_test2.difference(set_test1)
    >>> print(test_result2)
    {'ZhangJie', 'Jack'} >>> test_result2 = set_test2-set_test1
    >>> print(test_result2)
    {'ZhangJie', 'Jack'}
  • 求交叉补集

    >>> set_test1 = {"YuanMing", "Hermaeus", "Chenglong", "Kelan"}
    >>> set_test2 = {"YuanMing", "Hermaeus", "ZhangJie","Jack"}
    >>> test_result = set_test1.symmetric_difference(set_test2)
    >>> print(test_result)
    {'ZhangJie', 'Jack', 'Kelan', 'Chenglong'}
    >>> test_result = set_test1^set_test2
    >>> print(test_result)
    {'ZhangJie', 'Jack', 'Kelan', 'Chenglong'}
  • 求集赋值

    • symmetric_difference_update(self, *args, **kwargs)

      >>> set_test1 = {"Jack", "Mark", "Devid"}
      >>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.symmetric_update(set_test2)
      >>> set_test1.symmetric_difference_update(set_test2) ## 把得到值赋予set_test1
      >>> set_test1, set_test2
      ({'Good', 'Marish', 'Devid', 'Mark'}, {'Good', 'Jack', 'Marish'}) >>> set_test1 ^= set_test2
      >>> set_test1
      {'Good', 'Marish', 'Devid', 'Mark'}
    • intersection_update(self, *args, **kwargs)

      >>> set_test1 = {"Jack", "Mark", "Devid"}
      >>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.intersection_update(set_test2) ##把得到的值赋予set_test1
      >>> set_test1, set_test2
      ({'Jack'}, {'Good', 'Jack', 'Marish'}) >>> set_test1 &= set_test2
      >>> set_test1
      {'Jack'}
    • difference_update(self, *args, **kwargs)

      >>> set_test1 = {"Jack", "Mark", "Devid"}
      >>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1.difference_update(set_test2)
      >>> set_test1, set_test2
      ({'Devid', 'Mark'}, {'Good', 'Jack', 'Marish'})
      >>> set_test1 = {"Jack", "Mark", "Devid"}
      >>> set_test2 = {"Jack", "Marish", "Good"} >>> set_test1 -= set_test2
      >>> set_test1
      {'Devid', 'Mark'}
    • set_test1 |= set_test2

      >>> set_test1 = {"Jack", "Mark", "Devid"}
      >>> set_test2 = {"Jack", "Marish", "Good"}
      >>> set_test1 |= set_test2
      >>> set_test1

子集与父集

  • issubset(self, *args, **kwargs)

    A.issubset(B) A是B的子集吗? 返回bool

    >>> set_test2 = {"Jack", "Marish", "Good"}
    >>> set_test1 = {"Jack"}
    >>> set_test2.issubset(set_test1)
    False
    >>> set_test1.issubset(set_test2)
    True
  • issuperset(self, *args, **kwargs)

    A.issuperset(B) A是B的父集吗? 返回bool

    >>> set_test2 = {"Jack", "Marish", "Good"}
    >>> set_test1 = {"Jack"}
    >>> set_test1.issuperset(set_test2)
    False
    >>> set_test2.issuperset(set_test1)
    True
  • isdisjoint(self, *args, **kwargs)

    返回True如果两个set没有交集

    >>> set_test1 = {"Jack", "Mark", "Devid"}
    >>> set_test2 = {"Ada", "Marish", "Good"}
    >>> set_test1.isdisjoint(set_test2)
    True
  • <,<= OR >,>=

    >>> set_test1 = {"Jack", "Mark", "Devid"}
    >>> set_test2 = {"Jack", "Mark"
    >>> set_test1 < set_test2
    False
    >>> set_test1 > set_test2
    True

Python集合及其运算的更多相关文章

  1. python集合的运算

    &  交集  | 并集    - 差集  ^ 异或集 # 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果 # 创建两个集合 s = {1,2,3,4,5} s2 = {3,4,5, ...

  2. 初学Python——集合及其运算

    一.集合定义及其功能 集合是一个无序的.不重复的数据组合,和字典列表一样也是一种数据类型. 集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了) ②关系测试(测试两组数据之间的交.并.差集 ...

  3. day14 Python集合关系运算交,差,并集

    low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...

  4. python 集合的运算

    x = frozenset([, , , , ]) y = frozenset([, , , , ]) #如果x与y没有公共元素,返回true print(x.isdisjoint(y)) #返回x与 ...

  5. Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数

    一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...

  6. python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

  7. python集合与字典的用法

    python集合与字典的用法 集合: 1.增加  add 2.删除   •del 删除集合 •discard(常用)删除集合中的元素  #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...

  8. Python—集合的操作、文件的操作

    1.集合的操作 2.文件的操作 1.集合的操作 定义: 1.不同元素组成,自动去重 2.无序 3.集合中的元素必须是不可变类型 1.集合的定义: >>> s1 = set('abcd ...

  9. python集合、元组、字典

    主要内容: 2.集合 3.元组 4.字典 复习: 字符串和元组一样,只能读不能写.列表和字典可以嵌套任何东西,列表可以嵌套列表 L = list("hello")  # L = [ ...

随机推荐

  1. python第一百一十七天-----ModelForm组件

    Model + Form => 验证 + 数据库操作 - class LoginModelForm(xxxxx): 利用model.A中的字段 1. 生成HTML标签:class Meta: . ...

  2. c/c++ 标准容器 之 初始化, 赋值, swap, 比较

    c/c++ 标准容器 之 初始化, 赋值, swap, 比较 知识点 1,容器的初始化,对应代码里的test1 2,标准库array的初始化,对应代码里的test2 3,容器的赋值 ,对应代码里的te ...

  3. c/c++ 哈希表 hashtable

    c/c++ 哈希表 hashtable 概念:用key去查找value 实现hash函数有很多方法,本文用除留余数法. 除留余数法的概念: 取一个固定的基数的余数,注意不能用偶数,用偶数的话,分布会不 ...

  4. Hibernate 5 入门指南-基于类注解

    首先创建hibernate.cfg.xml配置文件并做简单的配置 <hibernate-configuration>    <session-factory>        & ...

  5. 常见C语言内存错误

    前言 C语言强大的原因之一在于几乎能掌控所有的细节,包括对内存的处理,什么时候使用内存,使用了多少内存,什么时候该释放内存,这都在程序员的掌控之中.而不像Java中,程序员是不需要花太多精力去处理垃圾 ...

  6. linux中如何查看进程的启动时间

    ps -p PID -o lstart 其中PID是进程的pid [root@lvs-a logs]# -o lstart STARTED Tue Oct ::

  7. dp 动态规划 蘑菇

    蘑菇真的贵,友情价更高   Description 由于提莫为巡逻准备的蘑菇太多了,多余的蘑菇路上种不下,于是他精心挑选了一些蘑菇拜访他的好朋友小炮 提莫的蘑菇一共有n个,对于编号为i的蘑菇魔力值是a ...

  8. ElasticSearch(二):允许外网连接服务配置

    上一篇文章的配置,只能在本机使用,但是要想为集群或者其他的机器连接,则需要做以下配置: 一.修改/opt/elasticsearch-6.4.0/config/elasticsearch.yml文件 ...

  9. Ubuntu开启或重启ssh服务

    开启ssh服务首先需要安装打开ssh服务的库: sudo apt-get install openssh-server 检查当前的ssh开启情况: ps -e |grep ssh 如果有sshd,则s ...

  10. 发现电脑上装着liteide,就用golang做一个TCP通讯测试(支持先启动client端和断线重连)

    1.参考https://www.cnblogs.com/yin5th/p/9274495.html server端 main.go package main import ( "fmt&qu ...