Python3学习之路~2.6 集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

>>> list1 = [1,4,5,7,3,6,7,9]
>>> list1=set(list1) # 将list变为set,自动去重
>>> print(list1,type(list1))
{1, 3, 4, 5, 6, 7, 9} <class ‘set‘>

>>> s = set([3,5,9,10])    #创建一个数值集合
>>> t = set("Hello")       #创建一个唯一字符的集合
>>>
>>> t.add(‘x‘) # 添加一项
>>> print(t)
{‘o‘, ‘x‘, ‘e‘, ‘l‘, ‘H‘}

>>> s.update([10,37,42]) # 在s中添加多项
>>> print(s)
{3, 37, 5, 9, 10, 42}

>>> t.remove(‘H‘) # 使用remove()可以删除一项
>>> print(t)
{‘o‘, ‘x‘, ‘e‘, ‘l‘}

>>> t.pop() # 随机删除,必须无参
‘o‘
>>> print(t)
{‘x‘, ‘e‘, ‘l‘}

>>> t.discard(‘e‘) # 使用discard()删除
>>> print(t)
{‘x‘, ‘l‘}

>>> len(s) # set的长度
6

>>> x in s # 测试x是否是s的成员
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘x‘ is not defined

>>> x not in s # 测试x是否不是s的成员
True

>>> print(s)
{3, 37, 5, 9, 10, 42}
>>> y=set([3,5,9,8,4])
>>>
>>> s<=y
False
>>> s.issubset(y) # 同s<=y,测试是否s中的每一个元素都在y中
False

>>> s>=y
False
>>> s.issuperset(y) # 同s>=y,测试是否y中的每一个元素都在s中
False

>>> s&y
{9, 3, 5}
>>> s.intersection(y) # 同s&y,交集,返回一个新的set包含s和y中的公共元素
{9, 3, 5}

>>> s|y
{3, 4, 37, 5, 8, 9, 42, 10}
>>> s.union(y) # 同s|y,并集,返回一个新的set包含s和y中的每一个元素
{3, 4, 37, 5, 8, 9, 42, 10}

>>> s-y
{10, 42, 37}
>>> s.difference(y) # 同s-y,差集(项在s中,但不在y中),返回一个新的set包含s中有但是y中没有的元素
{10, 42, 37}

>>> s^y
{4, 42, 37, 8, 10}
>>> s.symmetric_difference(y) # 同s^y,对称差集(项在y或s中,但不会同时出现在二者中),返回一个新的set包含s和y中不重复的元素
{4, 42, 37, 8, 10}

>>> s.copy() #返回 set “s”的一个浅复制
{3, 42, 37, 5, 9, 10}

原文地址:https://www.cnblogs.com/zhengna/p/9184508.html

时间: 2024-10-11 12:31:52

Python3学习之路~2.6 集合操作的相关文章

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

python学习之路-1 python基础操作

变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型. 变量在程序中就是用一个变量名表示了,变量名必须是大小写英文.数字和_的组合,且不能用数字开头. 例如: x = 100 # 变量x是一个整数 name = 'zhangcong' # 变量name是一个字符串 Answer = True # 变量v是一个布尔值 _name = 'xxxxx' # 以下划线开头也是可以的,但是不建议 常量 常量就是不能变的变量,比如常用的数学常数π就

[原创]java WEB学习笔记64:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Python3学习之路~5.7 Json &amp; pickle 模块

用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 pickle.dumps 将数

Python3学习之路~10.2 协程、Greenlet、Gevent

一 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic

python3学习之路(目录)

一.Python学习(第一章) 1.python入门 -->第一个python程序 -->注释 -->变量 -->输入输出 -->流程控制 -->while循环 -->练习题 2.运算符 -->算数运算 -->比较运算 -->赋值运算 -->逻辑运算 -->成员运算 3.基本数据类型 -->整型 -->布尔型 -->字符串 -->列表 -->元组 -->字典 -->练习题 目录 持续更新中..

Python3学习笔记-字符串和字符串操作

字符串,可以存任意类型的字符串,比如名字,一句话等等 name = 'Sriba' msg = 'Welcome to my blog.' 字符串还有很多内置的方法,对字符串进行操作,常用的方法如下,下面注释带有是否的,返回的都是一个布尔值: name = 'my \t name is {name},age is {age}.'print(name.capitalize()) # 大写print(name.center(50, '-')) # 50个-,把name放中间print(name.en

Python3学习之路~3.1 函数基本语法及特性、返回值、参数、局部与全局变量

1 函数基本语法及特性 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 语法定义: 1 def sayhi():#函数名 2 print("Hello, I'm nobody!") 3 4 sayhi() #调用函数 可以带参数 1 #下面这段代码 2 a,b = 5,8 3 c = a**b 4 print(c) 5 6 7 #改成用函数写 8 def calc(x,y)

Java学习之路(六):集合

集合的由来 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义 java内部给我们提供的集合类,能存储任意对象,长度是可以改变的.随着元素的增加而增加,随着元素的减少而减少 数组和集合的区别 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值 集合只能存储引用数据类型(对象Object),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象  eg:int==>Integer 数组长度是固定的,不能自动增长 集合