Python学习(四)数据结构 —— set frozenset
集合类型 set frozenset
赋值及去重
set 是一个无序不重复元素集,还有个frozenset 类型(顾明思议,就是不可改变元素的集合);
基本功能包括关系测试和消除重复元素;set支持& | - (交、并、差集) 等数学运算
set 赋值:非空集合由{}标识,逗号隔开元素; 注意,空集合表示为 set() 而不是 {} (这是dict);python 会对set自动去除重复
s = {} # 注意这是 dict类型
print(type(s))
s = set() # 空集合表示方法
print(type(s))
s = {1,1.0}
print(s) # 输出{1.0},可去重 int float类型不区分,输出float
s = [1,2,1,2,1,1,3]
s = set(s) # 强制转换成 set
print(s) # 同样去重了
同 list 相似,set 也有简单操作,如下:
s = {1,2,1,2,1,1,3,0}
print(s,len(s)) # len(s) 返回了set包含元素的个数(去重)
print((1.0 in s),(3 in s),(True in s),(False in s)) # 测试是否包含元素,注意0可以对应False,1可以对应True
print(True not in s)
交、并、差集运算
表示法: & | - ; 分别表示交集、并集、及非(具体意思请百度),无对应结果返回空集合,即 set() 示例如下:
a = {0,1,2}
b = {1,2,3}
print(a&b) # 交集
print(a|b) # 并集
print(a-b) # a差b
print(b-a) # b差a
a = {0,1,2}
b = {3,4,5}
print(a&b) # set()
一些函数也可作交、并、差运算,详细参见 python list、set 相关参考
增、删操作
s.add(elem) 增加;.remove(elem) .discard(elem) .pop() 删除;s.clear() 清空;详见下面实例
s = {0,1,2}
s.add(4) # .add(elem)
s.add(4.0)
s.add("")
print(s)
s.remove(0) # .remove(elem) 去除现有元素,如不存在,会 raise error
print(s)
# s.remove(0) # 报错
s = {0,1,2}
s.discard(0) # .discard(elem) 去除现有元素,如不存在,不会报错
print(s)
s.discard(4) # 不会报错
s = {"a","b","c"}
print(s.pop(),s) # 删除一个不确定的元素,并 return 该元素,若集合为空,会 raise error
s = {1,2,3}
print(s.pop()) # 数字类型好像每次都会pop出最小的1
s = {1,2,3,"b","c"}
print(s.pop()) # pop出不确定的非数字,或者最小的数字1
s.clear()
print(s) # 清空
Python学习(四)数据结构 —— set frozenset的更多相关文章
- python学习4—数据结构之列表、元组与字典
python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...
- python学习四(处理数据)
head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-34,3:21,2.34,2.45 ...
- 从0开始的Python学习012数据结构&对象与类
简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...
- Python学习笔记——数据结构和算法(一)
1.解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量. 唯一的前提就是变量的数量必须跟序列元素的数量是一样的. >>> data ...
- python学习之数据结构
python的数据很丰富,所以对于数据分析来讲, python是一种最合适的选择 下面讲述一下常见的数据结构,包括栈,队列,元组,字典,集合等,以及对这些数据结构进行操作 #堆栈,后进先出 a=[10 ...
- Python学习(四) Python数据类型:序列(重要)
插播一下,先了解一下Python的数据类型,Python现有的数据类型有好多,最重要的有列表.元组.字典 列表:我觉得可以对应java中的数组 list=['physics', 'chemistry' ...
- Python学习(四):模块入门
1.模块介绍 模块:代码实现的某个功能的集合 模块分类: 自定义模块 内置标准模块 开源模块 模块的常用方法: 是否为主文件:__name__ == '__main__' 如果是直接执行的某程序,那么 ...
- Python学习四|变量、对象、引用的介绍
变量 变量创建:一个变量也就是变量名,就像a,当代码第一次赋值时就创建了它.之后的赋值将会改变已创建的变量名的值,从技术上讲,Python在代码运行之前先检测变量名,可以当成是最初的赋值创建了变量. ...
- Python学习笔记——数据结构和算法(二)
1.字典中一个键映射多个值 可以使用collections中的defaultdict来实现,defalultdict接受list或者set为参数 from collections import def ...
- Python学习(四)数据结构(概要)
Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types int float Text Sequence ...
随机推荐
- [你必须知道的.NET]第二十四回:认识元数据和IL(上)
发布日期:2009.02.24 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 说在,开篇之前 很早就有说说Metadata(元数据)和IL(中 ...
- y450 archlinux cuda6.5
y450 archlinux cuda6.5 January 28, 2018 4:11 PM archlinux是最新更新版本,gcc版本到了7.几,太新了. [qiangge@lqspc ~]$ ...
- Python实现简单的API接口
get方法 代码实现 # coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_ ...
- POWEROJ 2610 判断回文串 【HASH】
题目链接[https://www.oj.swust.edu.cn/problem/show/2610] 题意:给你一个字符串,让你判断这个字符串是不是回文串,字符串的长度是1<len<1e ...
- 【欧拉定理】BZOJ3884-上帝与集合的正确用法
[题目大意] 求2^(2^(2^(2^(2^...)))) mod p. [思路] 蒟蒻在知道用欧拉做的前提下,对这题目瞪了好久没有明白,看了正解扑通一声跪下来orz直接搬运popoqqq大爷的吧反正 ...
- python爬取基础网页图片
python基础爬虫总结 1.爬取信息原理 与浏览器客户端类似,向网站的服务器发送一个请求,该请求一般是url,也就是网址.之后服务器响应一个html页面给客户端,当然也有其他数据类型的信息,这些就是 ...
- SpringBoot静态资源访问+拦截器+Thymeleaf模板引擎实现简单登陆
在此记录一下这十几天的学习情况,卡在模板引擎这里已经是四天了. 对Springboot的配置有一个比较深刻的认识,在此和大家分享一下初学者入门Spring Boot的注意事项,如果是初学SpringB ...
- 对于GTPv1协议头部的解析
参考ETSI EN 301 347 GTP是GPRS Tunnelling Protocol 的简称.GTP分为GTPv0(已经淘汰),GTPv1 和GTPv2.下面,介绍的是GTPv1. GTPv1 ...
- (转)资源监控工具Spotlight监测LINUX
个人1.安装spotlight,Spotlight on Unix2.配置spotlight,注意spotlight默认不能使用root用户进行连接,需要用户自己创建一个具有root权限的用户.(1) ...
- Maven安装详细图文教程
1.安装maven前需要先安装java,并设置JAVA_HOME环境变量.(详见jdk安装教程) 2. 将apache-maven-3.0.5-bin.zip放到d:\teamwork(自定义目录) ...