set是一个无序且不重复的元素集合,相当于字典的键,不重复,不可变

一、set变量初始化

A = set() #注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典
B = {"one", "two", "three", "four"}
C = set('boy')
D = set(['y', 'b', 'o'])
E = set({"k1": 'v1', 'k2': 'v2'})
F = {'k1', 'k2', 'k2'}
G = {('k1', 'k2', 'k2')}
print (A, type(A))
print (B, type(B))
print (C, type(C))
print (D, type(D))
print (E, type(E))
print (F, type(F))
print (G, type(G))
#运行结果:
(set([]), <type 'set'>)
(set(['four', 'three', 'two', 'one']), <type 'set'>)
(set(['y', 'b', 'o']), <type 'set'>)
(set(['y', 'b', 'o']), <type 'set'>)
(set(['k2', 'k1']), <type 'set'>)
(set(['k2', 'k1']), <type 'set'>)
(set([('k1', 'k2', 'k2')]), <type 'set'>)

去除重复值

#!/usr/bin/env python
# -*- coding:utf-8 -*-
A = [1,3,2,3,4,3,4,5,6,3,23,4,3]
B = ("yang", "yang", "yong", "ming", "ming") set1 = set(A)
set2 = set(B) print set1
print set2
#运行结果
set([1, 2, 3, 4, 5, 6, 23])
set(['yang', 'yong', 'ming'])

二、更新/删除

set序列不能对元素进行修改,只可以增加和删除

#!/usr/bin/env python
# -*- coding:utf-8 -*-
A = set({1, 2, 3, 4, 5})
B = set((3, 4, 5, 6, 7)) A.add(7) # 增加单个元素
print ("add: %s" % A)
A.remove(2) # 移除单个元素
print ("remove: %s" % A)
A.discard(11) # 存在则删除,不存在也不报错
print ("discard: %s" % A)
A.pop() # 随机删除一个元素
print ("pop: %s" % A)
A.update(B) #更新一个可迭代的对象
print ("update: %s" % A)
A.clear() #清空set序列
print ("clear: %s" % A)
#运行结果
add: set([1, 2, 3, 4, 5, 7])
remove: set([1, 3, 4, 5, 7])
discard: set([1, 3, 4, 5, 7])
pop: set([3, 4, 5, 7])
update: set([3, 4, 5, 6, 7])
clear: set([])
set([])

三、集合操作

#!/usr/bin/env python
# -*- coding:utf-8 -*-
A = set({1, 2, 3, 4, 5})
B = set((3, 4, 5, 6, 7)) print A & B # 交集,生成新序列
print A | B # 并集,生成新序列
print A - B # 差集(在a中,但不在b中),生成新序列
print A ^ B # 对称差集(项在a或b中,但不会同时出现在二者中),生成新序列 print A.union(B) # 并集,生成新序列
print A.intersection(B) # 交集,生成新序列
print A.difference(B) # 差集,生成新序列
print A.symmetric_difference(B) # 对称差集,生成新序列 A.intersection_update(B) # 交集,覆盖更新原序列
A.difference_update(B) # 差集覆盖更新原序列A
A.symmetric_difference_update(B) # 对称差集,覆盖更新原序列A print A.isdisjoint(B) # 判断两个序列是不是不想交 bool
print A.issubset(B) # 判断B是否包含A bool,等同于A<=B
print A.issuperset(B) # 判断A是否包含B bool,等同于A>=B
#运行结果
set([3, 4, 5])
set([1, 2, 3, 4, 5, 6, 7])
set([1, 2])
set([1, 2, 6, 7]) set([1, 2, 3, 4, 5, 6, 7])
set([3, 4, 5])
set([1, 2])
set([1, 2, 6, 7]) False
True
True

四、常用函数

    def add(self, element: _T)   # 添加一个元素
def clear(self) # 清空集合
def copy(self) # 浅复制
def difference(self, *s: Iterable[Any]) #差集,生成新序列
def difference_update(self, *s: Iterable[Any]) #差集,更新原序列
def discard(self, element: _T) # 删除单个元素
def intersection(self, *s: Iterable[Any]) # 交集,生成新序列
def intersection_update(self, *s: Iterable[Any]) # 交集,更新原序列
def isdisjoint(self, s: Iterable[Any]) # 判断两个集合是不是不相交
def issubset(self, s: Iterable[Any]) # 判断集合是不是被其他集合包含,等同于a<=b
def issuperset(self, s: Iterable[Any]) # 判断集合是不是包含其他集合,等同于a>=b
def pop(self) # 弹出一个元素,随机的,不可指定
def remove(self, element: _T) # 移除单个元素,如果该元素不存在在该集合,则会报错
def symmetric_difference(self, s: Iterable[_T]) # 对称差集,生成新序列
def symmetric_difference_update(self, s: Iterable[_T]) # 对称差集,更新原序列
def update(self, *s: Iterable[_T]) # 更新单个元素,或其他集合

Python 基础数据类型之set的更多相关文章

  1. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  2. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  3. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  4. 1--Python 入门--Python基础数据类型

    一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...

  5. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  6. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  7. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  8. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  9. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  10. 老男孩Python==基础数据类型考试题

    转载 # Python基础数据类型考试题 # 考试时间:两个半小时 满分100分(80分以上包含80分及格) # 一,基础题. # 1, 简述变量命名规范(3分) # 1.变量由字母.数字.下划线任意 ...

随机推荐

  1. ABPZERO介绍

    内容 首先我们创建一个名为"Acme.PhoneBook"的项目. 本文档是指南会同步开发您的项目. 我们建议你在开发之前准备备份下这份初始项目. 因为abpZero是基于abp的 ...

  2. 关于web.xml3.0启动报错

    九月 08, 2017 10:18:19 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRu ...

  3. 【DDD】业务建模实践 —— 发布帖子

    本文是基于上一篇‘业务建模战术’的实践,主要讲解‘发表帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于<领域驱动设计> ...

  4. 并发系列(一)-----synchronized关键字

    一 简介 说到并发不得不提的synchronized,synchronized关键字是元老级别的角色.在Java SE 1.6之前synchronized被称为是重量,在1.6之后对同步进行了一系列的 ...

  5. Unity 3D 简易制作摄像机围绕物体随鼠标旋转效果

    Unity 3D 简易制作摄像机围绕物体随鼠标旋转效果 梗概: 一. 摄像机围绕目标物体旋转, 即摄像机离目标物体有一定的距离且旋转轴心为该物体的位置. 二. 当目标物体被障碍物挡住后, 需要将摄像机 ...

  6. GitHubDesktop权限问题解决办法

    Desktop对于管理仓库非常方便.实用 很多人实用Desktop将仓库项目clone到本地 但是更新后同步时出现了如下权限错误: Error Authentication failed. You m ...

  7. python发送邮件脚本ssl 465端口

    #coding:utf8 from smtplib import SMTP_SSL from email.header import Header from email.mime.text impor ...

  8. Final版本互评——杨老师粉丝群《PinBall》

    基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题 (1)N(Need,需求) 随着民族自信的觉醒,民主文化越来越受到重视,语文在高考中的比重也不断增加,在这种大环境下,成 ...

  9. Linux内核分析——第六周学习笔记

    进程的描述和进程的创建 前言:以下笔记除了一些讲解视频中的概念记录,图示.图示中的补充文字.总结.分析.小结部分均是个人理解.如有错误观点,请多指教! PS.实验操作会在提交到MOOC网站的博客中写.

  10. ElasticSearch 2 (36) - 信息聚合系列之显著项

    ElasticSearch 2 (36) - 信息聚合系列之显著项 摘要 significant_terms(SigTerms)聚合与其他聚合都不相同.目前为止我们看到的所有聚合在本质上都是简单的数学 ...