python基础知识 -- set集合
Set集合:是Python的一个基本数据类型。一般不是很常用。Set中的元素是不重复的,无序的,里面的元素必须是可hash的(int,str,tuple,bool)。我们可以这样来计Set就是dict类型的数据但是不保存value,只保存key,set也用{}表示。
注意:set集合中的元素必须是可hash的,但是set本身是不可hash的,set是可变的。【即为:set内部不能有set】
#定义一个set集合
s = {'a'}
print(s)
print(type(s)) #实例化
s1 = set()#声明一个空set集合 #s3 = {123,[12,34,4]} #报错 TypeError: unhashable type: 'list'
#s3 = {123,(12,34,4)} #正常
#s4 = {123,{12,34,4}} #报错
执行结果:
{'a'}
<class 'set'>
set集合中的元素是不重复的,且无序的
#set中的元素是不重复的,且无序的
s2 = {'abc','12','bd','abc',True,False}
print(s2) #去重 {False, True, '12', 'abc', 'bd'}
set中的常用操作:
1)增加
>>> s = {"张三","李四","王五"}
>>> s.add("赵六") #重复的内容不会被添加到set集合中
>>> s
{'王五', '李四', '赵六', '张三'}
>>> s.update("薛七") #迭代更新 即把“薛”和“七”分别加入set集合
>>> s
{'王五', '薛', '七', '李四', '赵六', '张三'}
2)删除
>>> s.pop()#随机删除一个元素
'王五'
>>> s.remove("张三")#直接删除元素,如果不存在这个元素,删除会报错
>>> s
{'薛', '七', '李四', '赵六'}
>>> s.clear()#清空set集合需要注意的是set集合如果是空的,打印出来是set(),因为要和dict区分
>>> s
set()
3)修改
set集合中的数据没有索引,也没用办法去定位一个元素,所以没有办法进行直接修改。我们可以采用先删除后添加的方式来完成修改操作。
>>> s = {"张三","李四","王五"}
>>> s.remove("张三")
>>> s.add("赵六")
>>> s
{'王五', '李四', '赵六'}
4)查询
set是一个可迭代对象,可以进行for循环
>>> for el in s:
print(el) 王五
李四
赵六
5)常用操作
#求交集
>>> s1 = {"张三","李四","王五"}
>>> s2 = {"王五","赵六","薛七"}
>>> s1 & s2
{'王五'}
>>> s1.intersection(s2)
{'王五'} #求并集
>>> s1 | s2
{'王五', '薛七', '李四', '赵六', '张三'}
>>> s1.union(s2)
{'王五', '薛七', '李四', '赵六', '张三'} #求差集
>>> s1 - s2
{'李四', '张三'}
>>> s1.difference(s2)
{'李四', '张三'} #求反交集 集两个set集合中单独存在的数据元素
>>> s1 ^ s2
{'张三', '李四', '赵六', '薛七'}
>>> s1.symmetric_difference(s2)
{'张三', '李四', '赵六', '薛七'} #子集
>>> s3 = {"张三","李四"}
>>> s4 = {"张三","李四","王五"}
>>> s1 < s2
False
>>> s3 < s4
True #超集
>>> s1 > s2
False
>>> s3.issuperset(s4)
False
>>>
python基础知识 -- set集合的更多相关文章
- Python基础知识:集合
1.集合(set)是一个存放在中括号内的无序,不重复的序列.例如:set = {'1','12','25'} 2.创建集合的两种方法: set = {1,2,3} 中括号直接创建 set = {[1, ...
- python基础知识笔记-集合
集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...
- python基础知识(集合)
集合 可变集合set()/不可变集合frozenset() {} 大写的拉丁字母 用于保存不重复元素.无序不能通过索引来获取 集合的创建 空集合 使用set()函数 变量名 = set() 集合的添 ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Python基础知识(六)------小数据池,集合,深浅拷贝
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : 一个文 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
随机推荐
- matlab练习程序(模拟退火SA)
模拟退火首先从某个初始候选解开始,当温度大于0时执行循环. 在循环中,通过随机扰动产生一个新的解,然后求得新解和原解之间的能量差,如果差小于0,则采用新解作为当前解. 如果差大于0,则采用一个当前温度 ...
- C#转Java之路之二:多线程原子变量
多线程操作会带来不一致性,为了实现一直性.我们可以用关键字:synchronized同步对象或者volatile轻量级.内存可见性. 两个关键字使用对比: 1.synchronized比较重,属于悲观 ...
- 修改CPAN安装源
更新CPAN镜像源的方法,以CentOS 6.5为例. 存储CPAN设置信息的文件路径为: /usr/share/perl/CPAN/Config.pm 使用vi打开文件 vi /usr/share/ ...
- IOS 公司标示使用反向域名
1. 公司标示使用反向域名========================================正向域名 www.baidu.com 用来标示一台网络主机反向域名 cn.itcast.Myd ...
- Coreseek:常见问题2
1.failed to lock XXXXX.spl文件 这是你建索引的时候会出现的问题,是你没有把打开的的searchd服务给关闭.由于你打开searchd服务时.他会建立一个叫xxx.spl的暂时 ...
- Black Rock Shooter 题解
题目描述 在人气动漫 Black Rock shooter 中,当加贺里对麻陶 说出了“滚回去“以后,与此同时,在另一个心灵世界里, BRS 也遭到了敌人的攻击.此时,一共有 n 个攻击排成一行 朝着 ...
- 如何写一个FMDB帮助类?看看runtime吧
FMDB是一个封装很好的sqllite类库.项目中调用的时候只需要写SQL语句,就能实现数据的CURD.我试过即使手写SQL语句也很麻烦,需要一个字段一个字段的拼上去,而且容易出错.有没有动态获取字段 ...
- html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包
下载文件: //通过路径得到一个输入流 String path = "获取需要下载的文件路径"; //path.lastIndexOf(".")+1可以获取文件 ...
- idea原生ajax数据处理(增删改查)
项目名称:Bookstore UI界面 项目文件 操作: jsp代码 <%@ page import="dao.BookDAO" %> <%@ page impo ...
- nineoldandroid 详细使用并且实现drawerlayout侧滑动画
nineoldandroid.view.ViewHelpe是一个为了兼容3.0以下的一个动画开源库 相关函数解读:(第一个参数都为动画对象,第二个为动画属性值的变化表达式) ViewHelper.se ...