集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

  1.去重,把一个列表变成集合,就自动去重了。

  2.关系测试,测试两组数据之前的交集、差集、并集等关系

1.集合的创建

# set集合用{}表示,有两种创建方法
set1 = set({1, 2, 'barry'}) # 使用set()方法创建集合
set2 = {1, 2, 'barry'} # 直接赋值创建集合
print(set1, set2)

2.集合的增

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
set1.add('女神') # 通过add()方法给集合添加单个元素
print(set1) set1.update('A') # 通过update()方法给集合迭代添加多个元素
print(set1)
set1.update('老师')
print(set1)
set1.update([1, 2, 3])
print(set1)

3.集合的删

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}

set1.remove('alex')     # 删除指定的元素
print(set1) set1.pop() # 随机删除一个元素
print(set1) set1.clear() # 清空集合
print(set1) del set1 # 删除集合
print(set1)

4.集合的其他操作

  4.1 交集。(&  或者 intersection)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2) # 交集为 {4, 5}
print(set1.intersection(set2)) # & 和 .intersection()方法都可用来求交集

  4.2 并集。(| 或者 union)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8} print(set1 | set2) # 并集 {1,2,3,4,5,6,7,8}
print(set2.union(set1))
print(set1.union(set2))

  4.3 差集。(- 或者 difference)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8} print(set1 - set2) # 差集 {1,2,3}
print(set1.difference(set2)) # 差集 {8,6,7} print(set2 - set1) # 差集 {1,2,3}
print(set2.difference(set1)) # 差集 {8,6,7}

  4.4反交集。 (^ 或者 symmetric_difference)

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8} print(set1 ^ set2)
print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}

  4.5子集与超集

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, 6} print(set1 < set2) # 结果为True 说明set1是set2的子集
print(set1.issubset(set2)) # 结果为True 说明set1是set2的子集 print(set2 > set1) # 结果为True 说明set2是set1的超集
print(set2.issuperset(set1)) # 结果为True 说明set2是set1的超集

5,frozenset不可变集合,让集合变成不可变类型。

s = frozenset('barry')
print(s, type(s))
# 输出结果: frozenset({'r', 'y', 'a', 'b'}) <class 'frozenset'>

day05 Python中的set集合的更多相关文章

  1. Python中字典和集合

    Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...

  2. 认识python中的set集合及其用法

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  3. Python中字典和集合的用法

    本人开始学习python 希望能够慢慢的记录下去 写下来只是为了害怕自己忘记. python中的字典和其他语言一样 也是key-value的形式  利用空间换时间 可以进行快速的查找 key 是唯一的 ...

  4. Python中的SET集合操作

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  5. Python中的数据结构 --- 集合(set)

    1.集合(set)里面的元素是不可以重复的    s={1,2,3,3,4,3,4}      ## 输出之后,没有重复的 2.定义一个空集合 s = set([]) print s,type(s)3 ...

  6. python中的set集合和深浅拷贝

    一.基础数据类型的补充 1.str中的join算法,将列表转换成字符串,并用'_'(或其他) li=['李嘉诚','马化腾','刘嘉玲','黄海峰',] s='_'.join(li) print(s) ...

  7. Python中字典,集合和元组函数总结

    ## 字典的所有方法- 内置方法 - 1 cmp(dict1, dict2) 比较两个字典元素. - 2 len(dict) 计算字典元素个数,即键的总数. - 3 str(dict) 输出字典可打印 ...

  8. 2018.8.3 python中的set集合及深浅拷贝

    一.字符串和列表的相互转化 之前写到想把xx类型的数据转化成yy类型的数据,直接yy(xx)就可以了,但是字符串和列表的转化比较特殊,相互之间的转化要通过join()和split()来实现. 例如: ...

  9. python中的set集合

    当使用爬虫URL保存时,一般会选择set来保存urls,set是集合,集合中的元素不能重复,其次还有交集,并集等集合的功能, 爬虫每次获取的网页中提取网页中的urls,并保存,这就需要利用urls = ...

随机推荐

  1. javap的使用

    今天听的分享里在介绍String时,提到了javap,学习了好久的java,但是好像从来没有了解过这个工具. javap是JDK提供的一个命令行工具,javap能对给定的class文件提供的字节代码进 ...

  2. JS数组常用方法总结

    JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); / ...

  3. 【AI】基本概念-准确率、精准率、召回率的理解

    样本全集:TP+FP+FN+TN TP:样本为正,预测结果为正 FP:样本为负,预测结果为正 TN:样本为负,预测结果为负 FN:样本为正,预测结果为负 准确率(accuracy):(TP+TN)/ ...

  4. odoo11社区版python依赖库相对odoo10的变化

  5. Golang 笔记 2 函数、结构体、接口、指针

    一.函数 Go中函数是一等(first-class)类型.我们可以把函数当作值来传递和使用.Go中的函数可以返回多个结果.  函数类型字面量由关键字func.由圆括号包裹声明列表.空格以及可以由圆括号 ...

  6. 数据共享Manager

    将数据设置成共享数据,一个进程修改了数据,另外一个进程就能就接受的被修改的数据. 起50个进程让他们都去操作一个数据: from multiprocessing import Process, Man ...

  7. J - Network of Schools

    来源poj1236 A number of schools are connected to a computer network. Agreements have been developed am ...

  8. 使用soap遇到的缓存问题

  9. JS创建对象的几种方式整理

    javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一:通过“字面量”方式创建对象 方法:将 ...

  10. 七牛免费SSL证书申请全流程

    购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...