一、set特性:

set是一个无序不重复的元素集合。

集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),用for循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片( slice)操作,也没有键(keys)可用来获取集合中元素的值。

set和dict一样,只是没有value,相当于dict的key集合, 由于dict中的key是不重复的,且是不可变对象,因此set也有如下特性

1.不重复

2.元素为不可变对象

二、 创建set集合

>>> set('boy')
set(['y', 'b', 'o'])
>>>

集合的添加

添加:add()方法和update()方法,add()作为一个元素添加,update()单个元素添加。

>>> n = set('boy')
>>> n
set(['y', 'b', 'o'])

>>> n.add('python')
>>> print n
set(['y', 'python', 'b', 'o'])

>>> n.update('ok')
>>> n
set(['y', 'python', 'k', 'b', 'o'])

例子2:

>>> se = {11,22,33}
>>> be = {22,44,55}

>>> se.update(be)
>>> se
set([33, 22, 55, 11, 44])

>>> se.update([66,77])
>>> print (se)
set([33, 66, 22, 55, 11, 44, 77])

>>> se.update('88')
>>> se
set([33, 66, 22, 55, '8', 11, 44, 77])

集合的删除

discard(),remove(),pop()

se = {11, 22, 33}

se.discard(11)

se.discard(44) # 移除不存的元素不会报错

print(se) se = {11, 22, 33}

se.remove(11) se.remove(44) # 移除不存的元素会报错

print(se)

se = {11, 22, 33} # 移除末尾元素并把移除的元素赋给新值

temp = se.pop() print(temp) # 33

print(se) # {11, 22}

取交集

se = {11, 22, 33}

be = {22, 55}

temp1 = se.intersection(be) #取交集,赋给新值

print(temp1) # 22

print(se) # {11, 22, 33}

temp2 = se.intersection_update(be) #取交集并更新自己

print(temp2) # None

print(se) # 22

或者

交集

>>> se&be
set([22])

并集

>>> se|be
set([33, 11, 22, 55])

差集

>>> se-be
set([33, 11])

集合的转换

>>> se = set(range(4))
>>> li = list(se)
>>> tu = tuple(se)
>>> st = str(se)

>>> print (li,type(li))
([0, 1, 2, 3], <type 'list'>)
>>> print (tu,type(tu))
((0, 1, 2, 3), <type 'tuple'>)
>>> print (st,type(st))
('set([0, 1, 2, 3])', <type 'str'>)

判断

se = {11, 22, 33}

be = {22}

print(se.isdisjoint(be)) #False,判断是否不存在交集(有交集False,无交集True)

print(se.issubset(be)) #False,判断se是否是be的子集合

print(se.issuperset(be)) #True,判断se是否是be的父集合

python set 集合复习--点滴的更多相关文章

  1. 5月11日 ArrayList集合复习、特殊集合、枚举类型

    一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(); //插入元素 al.Insert(,); //查看个数 in ...

  2. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  3. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

  4. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  5. Python中集合set()的使用及处理

    在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...

  6. Python:集合操作总结

    集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...

  7. python 的集合 set()操作

      Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素.     有以下运算:   1.创建一个set ()集合:   2.add:增加集合元素   3.clea ...

  8. python set集合(16)

    在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...

  9. python frozenset集合(17)

    在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...

随机推荐

  1. Learning-Python【6】:Python数据类型(2)—— 列表、元组

    一.列表类型 1.用途:记录多值,比如人的多个爱好 2.定义方式:在[ ]内用逗号分隔开多个任意类型的值 li = [1, 2, 3] 3.常用操作+内置方法 优先掌握的操作: 1)按索引存取值:可以 ...

  2. 解决 Command "python setup.py egg_info" failed with error code 1 问题

    参考: "pip install unroll": "python setup.py egg_info" failed with error code 1 解决 ...

  3. Lintcode481-Binary Tree Leaf Sum-Easy

    481. Binary Tree Leaf Sum Given a binary tree, calculate the sum of leaves. Example Example 1: Input ...

  4. Android外包团队——Jquery乱码解决方案

    最近使用jQuery遇到中文乱码问题,其实他的中文乱码就是因为contentType没有指定编码,只需在jQuery.js中搜索’contentType’ 然后在application/x-www-f ...

  5. Zabbix4.0+第三方报警平台OneAlert监控报警

    1. 前言 告警将重要信息发送给运维「或者其他相关人」,及时发现并且处理问题.在所有开源监控软件里面,Zabbix 的告警方式无疑是最棒的.告警的方式各式各样,从 Email 告警到飞信.139/18 ...

  6. Linux wc -l 统计文件行数存在的问题

    1.使用这种方式效率较低,而且不注意可能出现错误 find  . -name "*.pc" |xargs wc -l 直接查看 total 不是正确的值. 原因: 这种方式存在一个 ...

  7. vue query或params传参

    1.query 传递端: this.$router.push({ path:"/AccountFP", query:{ id:row.id, userId:row.userId } ...

  8. trueStudio中使用printf函数

    1.通过printf输出浮点数需要如下设置: 在工程属性下找到C/C++ build->Settings->Tool Settings->C Linker->Miscellan ...

  9. hbase大规模数据写入的优化历程 ,ZZ

    http://blog.csdn.net/zbc1090549839/article/details/51582817

  10. 第一次作业——WorkCount

    项目地址:https://gitee.com/yangfj/wordcount_project 1.软件需求分析: 撰写PSP表格: PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) ...